diff --git a/talib/_ta_lib.c b/talib/_ta_lib.c index a7c2f6735..655259d0c 100644 --- a/talib/_ta_lib.c +++ b/talib/_ta_lib.c @@ -1,60 +1,5 @@ /* Generated by Cython 3.2.8 */ -/* BEGIN: Cython Metadata -{ - "distutils": { - "depends": [ - "/Users/jbenedik/.cache/uv/builds-v0/.tmpW1VPkd/lib/python3.12/site-packages/numpy/_core/include/numpy/arrayobject.h", - "/Users/jbenedik/.cache/uv/builds-v0/.tmpW1VPkd/lib/python3.12/site-packages/numpy/_core/include/numpy/arrayscalars.h", - "/Users/jbenedik/.cache/uv/builds-v0/.tmpW1VPkd/lib/python3.12/site-packages/numpy/_core/include/numpy/ndarrayobject.h", - "/Users/jbenedik/.cache/uv/builds-v0/.tmpW1VPkd/lib/python3.12/site-packages/numpy/_core/include/numpy/ndarraytypes.h", - "/Users/jbenedik/.cache/uv/builds-v0/.tmpW1VPkd/lib/python3.12/site-packages/numpy/_core/include/numpy/ufuncobject.h", - "/opt/homebrew/include/ta-lib/ta_abstract.h", - "/opt/homebrew/include/ta-lib/ta_common.h", - "/opt/homebrew/include/ta-lib/ta_defs.h", - "/opt/homebrew/include/ta-lib/ta_func.h" - ], - "include_dirs": [ - "/usr/include", - "/usr/local/include", - "/opt/include", - "/opt/local/include", - "/opt/homebrew/include", - "/opt/homebrew/opt/ta-lib/include", - "/Users/jbenedik/.cache/uv/builds-v0/.tmpW1VPkd/lib/python3.12/site-packages/numpy/_core/include" - ], - "libraries": [ - "ta-lib" - ], - "library_dirs": [ - "/usr/lib", - "/usr/local/lib", - "/usr/lib64", - "/usr/local/lib64", - "/opt/lib", - "/opt/local/lib", - "/opt/homebrew/lib", - "/opt/homebrew/opt/ta-lib/lib" - ], - "name": "talib._ta_lib", - "runtime_library_dirs": [ - "/usr/lib", - "/usr/local/lib", - "/usr/lib64", - "/usr/local/lib64", - "/opt/lib", - "/opt/local/lib", - "/opt/homebrew/lib", - "/opt/homebrew/opt/ta-lib/lib" - ], - "sources": [ - "talib/_ta_lib.pyx" - ] - }, - "module_name": "talib._ta_lib" -} -END: Cython Metadata */ - #ifndef PY_SSIZE_T_CLEAN #define PY_SSIZE_T_CLEAN #endif /* PY_SSIZE_T_CLEAN */ @@ -1427,7 +1372,7 @@ static const char* const __pyx_f[] = { "talib/_ta_lib.pyx", "talib/_common.pxi", "talib/_abstract.pxi", - "../../.cache/uv/builds-v0/.tmpW1VPkd/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd", + "../.local/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd", "talib/_func.pxi", "talib/_stream.pxi", "cpython/type.pxd", @@ -2172,6 +2117,37 @@ static CYTHON_INLINE PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject *k #define __Pyx_PyObject_GetItem(obj, key) PyObject_GetItem(obj, key) #endif +/* 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)); +} + +/* PyObjectFormatAndDecref.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyObject_FormatSimpleAndDecref(PyObject* s, PyObject* f); +static CYTHON_INLINE PyObject* __Pyx_PyObject_FormatAndDecref(PyObject* s, PyObject* f); + +/* PyDeprecationWarning_Check.proto */ +#define __Pyx_PyExc_DeprecationWarning_Check(obj) __Pyx_TypeCheck(obj, PyExc_DeprecationWarning) + +/* PyObjectVectorCallKwBuilder.proto */ +CYTHON_UNUSED static int __Pyx_VectorcallBuilder_AddArg_Check(PyObject *key, PyObject *value, PyObject *builder, PyObject **args, int n); +#if CYTHON_VECTORCALL +#if PY_VERSION_HEX >= 0x03090000 +#define __Pyx_Object_Vectorcall_CallFromBuilder PyObject_Vectorcall +#else +#define __Pyx_Object_Vectorcall_CallFromBuilder _PyObject_Vectorcall +#endif +#define __Pyx_MakeVectorcallBuilderKwds(n) PyTuple_New(n) +static int __Pyx_VectorcallBuilder_AddArg(PyObject *key, PyObject *value, PyObject *builder, PyObject **args, int n); +static int __Pyx_VectorcallBuilder_AddArgStr(const char *key, PyObject *value, PyObject *builder, PyObject **args, int n); +#else +#define __Pyx_Object_Vectorcall_CallFromBuilder __Pyx_PyObject_FastCallDict +#define __Pyx_MakeVectorcallBuilderKwds(n) __Pyx_PyDict_NewPresized(n) +#define __Pyx_VectorcallBuilder_AddArg(key, value, builder, args, n) PyDict_SetItem(builder, key, value) +#define __Pyx_VectorcallBuilder_AddArgStr(key, value, builder, args, n) PyDict_SetItemString(builder, key, value) +#endif + /* PyObjectFastCallMethod.proto */ #if CYTHON_VECTORCALL && PY_VERSION_HEX >= 0x03090000 #define __Pyx_PyObject_FastCallMethod(name, args, nargsf) PyObject_VectorcallMethod(name, args, nargsf, NULL) @@ -2214,12 +2190,6 @@ 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) { @@ -2280,24 +2250,6 @@ static CYTHON_INLINE PyObject* __Pyx_PyLong_AddObjC(PyObject *op1, PyObject *op2 (inplace ? PyNumber_InPlaceAdd(op1, op2) : PyNumber_Add(op1, op2)) #endif -/* PyObjectVectorCallKwBuilder.proto */ -CYTHON_UNUSED static int __Pyx_VectorcallBuilder_AddArg_Check(PyObject *key, PyObject *value, PyObject *builder, PyObject **args, int n); -#if CYTHON_VECTORCALL -#if PY_VERSION_HEX >= 0x03090000 -#define __Pyx_Object_Vectorcall_CallFromBuilder PyObject_Vectorcall -#else -#define __Pyx_Object_Vectorcall_CallFromBuilder _PyObject_Vectorcall -#endif -#define __Pyx_MakeVectorcallBuilderKwds(n) PyTuple_New(n) -static int __Pyx_VectorcallBuilder_AddArg(PyObject *key, PyObject *value, PyObject *builder, PyObject **args, int n); -static int __Pyx_VectorcallBuilder_AddArgStr(const char *key, PyObject *value, PyObject *builder, PyObject **args, int n); -#else -#define __Pyx_Object_Vectorcall_CallFromBuilder __Pyx_PyObject_FastCallDict -#define __Pyx_MakeVectorcallBuilderKwds(n) __Pyx_PyDict_NewPresized(n) -#define __Pyx_VectorcallBuilder_AddArg(key, value, builder, args, n) PyDict_SetItem(builder, key, value) -#define __Pyx_VectorcallBuilder_AddArgStr(key, value, builder, args, n) PyDict_SetItemString(builder, key, value) -#endif - /* ListCompAppend.proto */ #if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS static CYTHON_INLINE int __Pyx_ListComp_Append(PyObject* list, PyObject* x) { @@ -2343,20 +2295,10 @@ static CYTHON_INLINE PyObject* __Pyx_PyTuple_GetSlice(PyObject* src, Py_ssize_t #define __Pyx_PyTuple_GetSlice(seq, start, stop) PySequence_GetSlice(seq, start, stop) #endif -/* PyObjectFormatAndDecref.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyObject_FormatSimpleAndDecref(PyObject* s, PyObject* f); -static CYTHON_INLINE PyObject* __Pyx_PyObject_FormatAndDecref(PyObject* s, PyObject* f); - /* PyObject_Unicode.proto */ #define __Pyx_PyObject_Unicode(obj)\ (likely(PyUnicode_CheckExact(obj)) ? __Pyx_NewRef(obj) : PyObject_Str(obj)) -/* py_dict_keys.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyDict_Keys(PyObject* d); - -/* pyint_simplify.proto */ -static CYTHON_INLINE int __Pyx_PyInt_FromNumber(PyObject **number_var, const char *argname, int accept_none); - /* SliceObject.proto */ static CYTHON_INLINE PyObject* __Pyx_PyObject_GetSlice( PyObject* obj, Py_ssize_t cstart, Py_ssize_t cstop, @@ -2392,6 +2334,12 @@ enum __Pyx_ImportType_CheckSize_3_2_8 { static PyTypeObject *__Pyx_ImportType_3_2_8(PyObject* module, const char *module_name, const char *class_name, size_t size, size_t alignment, enum __Pyx_ImportType_CheckSize_3_2_8 check_size); #endif +/* ImportImpl.export */ +static PyObject *__Pyx__Import(PyObject *name, PyObject *const *imported_names, Py_ssize_t len_imported_names, PyObject *qualname, PyObject *moddict, int level); + +/* Import.proto */ +static CYTHON_INLINE PyObject *__Pyx_Import(PyObject *name, PyObject *const *imported_names, Py_ssize_t len_imported_names, PyObject *qualname, int level); + /* dict_setdefault.proto (used by FetchCommonType) */ static CYTHON_INLINE PyObject *__Pyx_PyDict_SetDefault(PyObject *d, PyObject *key, PyObject *default_value); @@ -2573,18 +2521,12 @@ static PyObject *__Pyx_Py3MetaclassPrepare(PyObject *metaclass, PyObject *bases, static PyObject *__Pyx_Py3ClassCreate(PyObject *metaclass, PyObject *name, PyObject *bases, PyObject *dict, PyObject *mkw, int calculate_metaclass, int allow_py2_metaclass); -/* ListPack.proto */ -static PyObject *__Pyx_PyList_Pack(Py_ssize_t n, ...); - -/* ImportImpl.export */ -static PyObject *__Pyx__Import(PyObject *name, PyObject *const *imported_names, Py_ssize_t len_imported_names, PyObject *qualname, PyObject *moddict, int level); - -/* Import.proto */ -static CYTHON_INLINE PyObject *__Pyx_Import(PyObject *name, PyObject *const *imported_names, Py_ssize_t len_imported_names, PyObject *qualname, int level); - /* ImportFrom.proto */ static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name); +/* ListPack.proto */ +static PyObject *__Pyx_PyList_Pack(Py_ssize_t n, ...); + /* PyObjectCallMethod1.proto (used by append) */ static PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name, PyObject* arg); @@ -2769,6 +2711,9 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, /* CIntFromPy.proto */ static CYTHON_INLINE TA_RetCode __Pyx_PyLong_As_TA_RetCode(PyObject *); +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyLong_From_TA_FuncUnstId(TA_FuncUnstId value); + /* CIntFromPy.proto */ static CYTHON_INLINE int __Pyx_PyLong_As_int(PyObject *); @@ -2997,10 +2942,8 @@ int __pyx_module_is_main_talib___ta_lib = 0; /* Implementation of "talib._ta_lib" */ /* #### Code section: global_var ### */ static PyObject *__pyx_builtin_object; -static PyObject *__pyx_builtin_enumerate; static PyObject *__pyx_builtin_property; -static PyObject *__pyx_builtin_min; -static PyObject *__pyx_builtin_max; +static PyObject *__pyx_builtin_enumerate; /* #### Code section: string_decls ### */ /* #### Code section: decls ### */ static PyObject *__pyx_pf_5talib_7_ta_lib__ta_check_success(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_function_name, TA_RetCode __pyx_v_ret_code); /* proto */ @@ -3008,177 +2951,218 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_2_ta_initialize(CYTHON_UNUSED PyObject 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_18ACCBANDS(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_20ACOS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_22AD(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_24ADD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_26ADOSC(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_28ADX(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_30ADXR(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_32APO(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_34AROON(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_36AROONOSC(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_38ASIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_40ATAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_42ATR(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_44AVGPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_46AVGDEV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_48BBANDS(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_50BETA(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_52BOP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_54CCI(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_56CDL2CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_58CDL3BLACKCROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_60CDL3INSIDE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_62CDL3LINESTRIKE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_64CDL3OUTSIDE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_66CDL3STARSINSOUTH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_68CDL3WHITESOLDIERS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_70CDLABANDONEDBABY(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_72CDLADVANCEBLOCK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_74CDLBELTHOLD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_76CDLBREAKAWAY(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_78CDLCLOSINGMARUBOZU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_80CDLCONCEALBABYSWALL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_82CDLCOUNTERATTACK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_84CDLDARKCLOUDCOVER(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_86CDLDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_88CDLDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_90CDLDRAGONFLYDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_92CDLENGULFING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_94CDLEVENINGDOJISTAR(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_96CDLEVENINGSTAR(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_98CDLGAPSIDESIDEWHITE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_100CDLGRAVESTONEDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_102CDLHAMMER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_104CDLHANGINGMAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_106CDLHARAMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_108CDLHARAMICROSS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_110CDLHIGHWAVE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_112CDLHIKKAKE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_114CDLHIKKAKEMOD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_116CDLHOMINGPIGEON(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_118CDLIDENTICAL3CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_120CDLINNECK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_122CDLINVERTEDHAMMER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_124CDLKICKING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_126CDLKICKINGBYLENGTH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_128CDLLADDERBOTTOM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_130CDLLONGLEGGEDDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_132CDLLONGLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_134CDLMARUBOZU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_136CDLMATCHINGLOW(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_138CDLMATHOLD(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_140CDLMORNINGDOJISTAR(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_142CDLMORNINGSTAR(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_144CDLONNECK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_146CDLPIERCING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_148CDLRICKSHAWMAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_150CDLRISEFALL3METHODS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_152CDLSEPARATINGLINES(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_154CDLSHOOTINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_156CDLSHORTLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_158CDLSPINNINGTOP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_160CDLSTALLEDPATTERN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_162CDLSTICKSANDWICH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_164CDLTAKURI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_166CDLTASUKIGAP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_168CDLTHRUSTING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_170CDLTRISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_172CDLUNIQUE3RIVER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_174CDLUPSIDEGAP2CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_176CDLXSIDEGAP3METHODS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_178CEIL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_180CMO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_182CORREL(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_184COS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_186COSH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_188DEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_190DIV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_192DX(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_194EMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_196EXP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_198FLOOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_200HT_DCPERIOD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_202HT_DCPHASE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_204HT_PHASOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_206HT_SINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_208HT_TRENDLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_210HT_TRENDMODE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_212IMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_214KAMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_216LINEARREG(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_218LINEARREG_ANGLE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_220LINEARREG_INTERCEPT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_222LINEARREG_SLOPE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_224LN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_226LOG10(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_228MA(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_230MACD(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_232MACDEXT(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_234MACDFIX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_signalperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_236MAMA(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_238MAVP(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_240MAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_242MAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_244MEDPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_246MFI(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_248MIDPOINT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_250MIDPRICE(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_252MIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_254MININDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_256MINMAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_258MINMAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_260MINUS_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_262MINUS_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_264MOM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_266MULT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_268NATR(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_270OBV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_volume); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_272PLUS_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_274PLUS_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_276PPO(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_278ROC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_280ROCP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_282ROCR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_284ROCR100(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_286RSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_288SAR(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_290SAREXT(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_292SIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_294SINH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_296SMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_298SQRT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_300STDDEV(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_302STOCH(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_304STOCHF(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_306STOCHRSI(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_308SUB(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_310SUM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_312T3(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_314TAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_316TANH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_318TEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_320TRANGE(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_322TRIMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_324TRIX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_326TSF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_328TYPPRICE(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_330ULTOSC(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_332VAR(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_334WCLPRICE(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_336WILLR(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_338WMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_340str2bytes(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_s); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_342bytes2str(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_b); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_344str2bytes(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_s); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_346bytes2str(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_b); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_6_ta_func_unst_id(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_name); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_8_ta_set_unstable_period(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_name, PyObject *__pyx_v_period); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10_ta_get_unstable_period(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_name); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_12_ta_set_compatibility(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14_ta_get_compatibility(CYTHON_UNUSED PyObject *__pyx_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_16_ta_set_candle_settings(CYTHON_UNUSED PyObject *__pyx_self, 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_18_ta_restore_candle_default_settings(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_settingtype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_20AC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_22ACCBANDS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_24ACOS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_26AD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_28ADD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_30ADOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_fastperiod, int __pyx_v_slowperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_32ADR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_34ADX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_36ADXR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_38AO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_40APO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_42AROON(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_44AROONOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_46ASIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_48ATAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_50ATR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_52AVGDEV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_54AVGPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_56BBANDS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdevup, double __pyx_v_nbdevdn, int __pyx_v_matype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_58BETA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_60BOP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_62CCI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_64CDL2CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_66CDL3BLACKCROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_68CDL3INSIDE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_70CDL3LINESTRIKE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_72CDL3OUTSIDE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_74CDL3STARSINSOUTH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_76CDL3WHITESOLDIERS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_78CDLABANDONEDBABY(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_80CDLADVANCEBLOCK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_82CDLBELTHOLD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_84CDLBREAKAWAY(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_86CDLCLOSINGMARUBOZU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_88CDLCONCEALBABYSWALL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_90CDLCOUNTERATTACK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_92CDLDARKCLOUDCOVER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_94CDLDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_96CDLDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_98CDLDRAGONFLYDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_100CDLENGULFING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_102CDLEVENINGDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_104CDLEVENINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_106CDLGAPSIDESIDEWHITE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_108CDLGRAVESTONEDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_110CDLHAMMER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_112CDLHANGINGMAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_114CDLHARAMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_116CDLHARAMICROSS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_118CDLHIGHWAVE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_120CDLHIKKAKE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_122CDLHIKKAKEMOD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_124CDLHOMINGPIGEON(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_126CDLIDENTICAL3CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_128CDLINNECK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_130CDLINVERTEDHAMMER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_132CDLKICKING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_134CDLKICKINGBYLENGTH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_136CDLLADDERBOTTOM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_138CDLLONGLEGGEDDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_140CDLLONGLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_142CDLMARUBOZU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_144CDLMATCHINGLOW(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_146CDLMATHOLD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_148CDLMORNINGDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_150CDLMORNINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_152CDLONNECK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_154CDLPIERCING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_156CDLRICKSHAWMAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_158CDLRISEFALL3METHODS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_160CDLSEPARATINGLINES(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_162CDLSHOOTINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_164CDLSHORTLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_166CDLSPINNINGTOP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_168CDLSTALLEDPATTERN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_170CDLSTICKSANDWICH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_172CDLTAKURI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_174CDLTASUKIGAP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_176CDLTHRUSTING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_178CDLTRISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_180CDLUNIQUE3RIVER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_182CDLUPSIDEGAP2CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_184CDLXSIDEGAP3METHODS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_186CEIL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_188CMF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_190CMO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_192CMOU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_194COPPOCK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_wmaperiod, int __pyx_v_roc1period, int __pyx_v_roc2period); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_196CORREL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_198COS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_200COSH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_202CUMSUM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_204CVI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod, int __pyx_v_rocperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_206DEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_208DIV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_210DONCHIAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_212DPO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_214DX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_216EFI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_218EMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_220ER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_222ERI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_224EXP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_226FLOOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_228FOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_230FRACTAL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_leftbars, int __pyx_v_rightbars); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_232HA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_234HMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_236HT_DCPERIOD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_238HT_DCPHASE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_240HT_PHASOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_242HT_SINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_244HT_TRENDLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_246HT_TRENDMODE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_248IMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_250KAMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_252KC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod, int __pyx_v_atrperiod, double __pyx_v_nbdev); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_254KDJ(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_slowk_period, int __pyx_v_slowk_matype, int __pyx_v_slowd_period, int __pyx_v_slowd_matype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_256LINEARREG(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_258LINEARREG_ANGLE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_260LINEARREG_INTERCEPT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_262LINEARREG_SLOPE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_264LN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_266LOG10(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_268MA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_matype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_270MACD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_272MACDEXT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_fastmatype, int __pyx_v_slowperiod, int __pyx_v_slowmatype, int __pyx_v_signalperiod, int __pyx_v_signalmatype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_274MACDFIX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_signalperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_276MAMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, double __pyx_v_fastlimit, double __pyx_v_slowlimit); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_278MARKETFI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_280MASSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_282MAVP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_periods, int __pyx_v_minperiod, int __pyx_v_maxperiod, int __pyx_v_matype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_284MAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_286MAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_288MEDPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_290MFI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_292MIDPOINT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_294MIDPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_296MIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_298MININDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_300MINMAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_302MINMAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_304MINUS_DI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_306MINUS_DM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_308MOM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_310MULT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_312NATR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_314NVI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_316OBV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_318PERCENTILE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_percentile); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_320PERCENTRANK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_322PLUS_DI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_324PLUS_DM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_326PPO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_328PVI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_330PVO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_volume, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_332PVT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_334QSTICK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_336RMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_338ROC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_340ROCP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_342ROCR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_344ROCR100(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_346RSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_348RVI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_stddevperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_350RVOL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_352SAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, double __pyx_v_acceleration, double __pyx_v_maximum); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_354SAREXT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, double __pyx_v_startvalue, double __pyx_v_offsetonreverse, double __pyx_v_accelerationinitlong, double __pyx_v_accelerationlong, double __pyx_v_accelerationmaxlong, double __pyx_v_accelerationinitshort, double __pyx_v_accelerationshort, double __pyx_v_accelerationmaxshort); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_356SIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_358SINH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_360SMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_362SMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_364SQRT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_366STDDEV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_368STOCH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_slowk_period, int __pyx_v_slowk_matype, int __pyx_v_slowd_period, int __pyx_v_slowd_matype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_370STOCHF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_372STOCHRSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_374SUB(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_376SUM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_378SUPERTREND(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod, double __pyx_v_multiplier); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_380T3(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_vfactor); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_382TAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_384TANH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_386TEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_388TRANGE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_390TRIMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_392TRIX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_394TSF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_396TSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_firstperiod, int __pyx_v_secondperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_398TYPPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_400ULTOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod1, int __pyx_v_timeperiod2, int __pyx_v_timeperiod3); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_402VAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_404VHF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_406VORTEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_408VWAP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_410VWMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_412WAD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_414WCLPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_416WILLR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_418WMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_420ZLEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_422str2bytes(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_s); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_424bytes2str(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_b); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_426str2bytes(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_s); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_428bytes2str(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_b); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_function_name, PyObject *__pyx_v_func_object, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_2__local(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_4info(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ @@ -3203,175 +3187,215 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_40__get_opt_input_value(CYTH static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_42__repr__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_44__unicode__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_46__str__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_348_ta_getGroupTable(CYTHON_UNUSED PyObject *__pyx_self); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_350_ta_getFuncTable(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_group); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_352__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_354_ta_getFuncInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_356_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_358_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_360_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_362_get_defaults_and_docs(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_func_info); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_364stream_ACCBANDS(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_366stream_ACOS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_368stream_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_370stream_ADD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_372stream_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_374stream_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_376stream_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_378stream_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_380stream_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_382stream_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_384stream_ASIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_386stream_ATAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_388stream_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_390stream_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_392stream_AVGDEV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_394stream_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_396stream_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_398stream_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_400stream_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_402stream_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_404stream_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_406stream_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_408stream_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_410stream_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_412stream_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_414stream_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_416stream_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_418stream_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_420stream_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_422stream_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_424stream_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_426stream_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_428stream_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_430stream_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_432stream_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_434stream_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_436stream_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_438stream_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_440stream_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_442stream_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_444stream_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_446stream_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_448stream_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_450stream_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_452stream_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_454stream_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_456stream_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_458stream_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_460stream_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_462stream_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_464stream_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_466stream_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_468stream_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_470stream_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_472stream_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_474stream_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_476stream_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_478stream_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_480stream_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_482stream_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_484stream_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_486stream_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_488stream_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_490stream_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_492stream_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_494stream_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_496stream_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_498stream_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_500stream_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_502stream_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_504stream_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_506stream_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_508stream_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_510stream_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_512stream_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_514stream_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_516stream_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_518stream_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_520stream_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_522stream_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_524stream_CEIL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_526stream_CMO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_528stream_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_530stream_COS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_532stream_COSH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_534stream_DEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_536stream_DIV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_538stream_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_540stream_EMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_542stream_EXP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_544stream_FLOOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_546stream_HT_DCPERIOD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_548stream_HT_DCPHASE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_550stream_HT_PHASOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_552stream_HT_SINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_554stream_HT_TRENDLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_556stream_HT_TRENDMODE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_558stream_IMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_560stream_KAMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_562stream_LINEARREG(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_564stream_LINEARREG_ANGLE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_566stream_LINEARREG_INTERCEPT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_568stream_LINEARREG_SLOPE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_570stream_LN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_572stream_LOG10(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_574stream_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_576stream_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_578stream_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_580stream_MACDFIX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_signalperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_582stream_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_584stream_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_586stream_MAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_588stream_MAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_590stream_MEDPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_592stream_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_594stream_MIDPOINT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_596stream_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_598stream_MIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_600stream_MININDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_602stream_MINMAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_604stream_MINMAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_606stream_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_608stream_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_610stream_MOM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_612stream_MULT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_614stream_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_616stream_OBV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_volume); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_618stream_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_620stream_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_622stream_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_624stream_ROC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_626stream_ROCP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_628stream_ROCR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_630stream_ROCR100(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_632stream_RSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_634stream_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_636stream_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_638stream_SIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_640stream_SINH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_642stream_SMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_644stream_SQRT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_646stream_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_648stream_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_650stream_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_652stream_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_654stream_SUB(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_656stream_SUM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_658stream_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_660stream_TAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_662stream_TANH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_664stream_TEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_666stream_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_668stream_TRIMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_670stream_TRIX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_672stream_TSF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_674stream_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_676stream_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_678stream_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_680stream_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_682stream_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_684stream_WMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_430_ta_getGroupTable(CYTHON_UNUSED PyObject *__pyx_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_432_ta_getFuncTable(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_group); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_434__get_flags(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_flag, PyObject *__pyx_v_flags_lookup_dict); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_436_ta_getFuncInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_438_ta_getInputParameterInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name, int __pyx_v_idx); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_440_ta_getOptInputParameterInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name, int __pyx_v_idx); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_442_ta_getOutputParameterInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name, int __pyx_v_idx); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_444_get_defaults_and_docs(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_func_info); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_446stream_AC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_448stream_ACCBANDS(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_450stream_ACOS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_452stream_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_454stream_ADD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_456stream_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_458stream_ADR(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_460stream_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_462stream_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_464stream_AO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_466stream_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_468stream_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_470stream_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_472stream_ASIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_474stream_ATAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_476stream_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_478stream_AVGDEV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_480stream_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_482stream_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_484stream_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_486stream_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_488stream_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_490stream_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_492stream_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_494stream_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_496stream_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_498stream_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_500stream_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_502stream_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_504stream_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_506stream_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_508stream_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_510stream_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_512stream_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_514stream_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_516stream_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_518stream_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_520stream_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_522stream_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_524stream_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_526stream_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_528stream_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_530stream_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_532stream_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_534stream_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_536stream_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_538stream_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_540stream_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_542stream_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_544stream_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_546stream_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_548stream_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_550stream_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_552stream_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_554stream_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_556stream_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_558stream_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_560stream_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_562stream_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_564stream_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_566stream_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_568stream_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_570stream_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_572stream_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_574stream_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_576stream_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_578stream_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_580stream_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_582stream_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_584stream_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_586stream_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_588stream_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_590stream_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_592stream_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_594stream_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_596stream_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_598stream_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_600stream_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_602stream_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_604stream_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_606stream_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_608stream_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_610stream_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_612stream_CEIL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_614stream_CMF(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_616stream_CMO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_618stream_CMOU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_620stream_COPPOCK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_wmaperiod, int __pyx_v_roc1period, int __pyx_v_roc2period); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_622stream_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_624stream_COS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_626stream_COSH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_628stream_CUMSUM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_630stream_CVI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod, int __pyx_v_rocperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_632stream_DEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_634stream_DIV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_636stream_DONCHIAN(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_638stream_DPO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_640stream_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_642stream_EFI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_644stream_EMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_646stream_ER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_648stream_ERI(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_650stream_EXP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_652stream_FLOOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_654stream_FOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_656stream_FRACTAL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_leftbars, int __pyx_v_rightbars); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_658stream_HA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_660stream_HMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_662stream_HT_DCPERIOD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_664stream_HT_DCPHASE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_666stream_HT_PHASOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_668stream_HT_SINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_670stream_HT_TRENDLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_672stream_HT_TRENDMODE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_674stream_IMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_676stream_KAMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_678stream_KC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod, int __pyx_v_atrperiod, double __pyx_v_nbdev); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_680stream_KDJ(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_682stream_LINEARREG(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_684stream_LINEARREG_ANGLE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_686stream_LINEARREG_INTERCEPT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_688stream_LINEARREG_SLOPE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_690stream_LN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_692stream_LOG10(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_694stream_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_696stream_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_698stream_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_700stream_MACDFIX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_signalperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_702stream_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_704stream_MARKETFI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_706stream_MASSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_708stream_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_710stream_MAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_712stream_MAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_714stream_MEDPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_716stream_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_718stream_MIDPOINT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_720stream_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_722stream_MIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_724stream_MININDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_726stream_MINMAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_728stream_MINMAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_730stream_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_732stream_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_734stream_MOM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_736stream_MULT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_738stream_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_740stream_NVI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_742stream_OBV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_744stream_PERCENTILE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_percentile); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_746stream_PERCENTRANK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_748stream_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_750stream_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_752stream_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_754stream_PVI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_756stream_PVO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_volume, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_758stream_PVT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_760stream_QSTICK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_762stream_RMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_764stream_ROC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_766stream_ROCP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_768stream_ROCR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_770stream_ROCR100(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_772stream_RSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_774stream_RVI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_stddevperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_776stream_RVOL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_778stream_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_780stream_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_782stream_SIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_784stream_SINH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_786stream_SMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_788stream_SMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_790stream_SQRT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_792stream_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_794stream_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_796stream_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_798stream_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_800stream_SUB(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_802stream_SUM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_804stream_SUPERTREND(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod, double __pyx_v_multiplier); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_806stream_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_808stream_TAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_810stream_TANH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_812stream_TEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_814stream_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_816stream_TRIMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_818stream_TRIX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_820stream_TSF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_822stream_TSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_firstperiod, int __pyx_v_secondperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_824stream_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_826stream_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_828stream_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_830stream_VHF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_832stream_VORTEX(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_834stream_VWAP(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_836stream_VWMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_838stream_WAD(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_840stream_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_842stream_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_844stream_WMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_846stream_ZLEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ /* #### Code section: late_includes ### */ /* #### Code section: module_state ### */ /* SmallCodeConfig */ @@ -3409,13 +3433,12 @@ typedef struct { PyTypeObject *__pyx_ptype_5numpy_character; PyTypeObject *__pyx_ptype_5numpy_ufunc; __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_items; - __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_keys; __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_pop; __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_values; PyObject *__pyx_tuple[10]; - PyObject *__pyx_codeobj_tab[369]; - PyObject *__pyx_string_tab[1154]; - PyObject *__pyx_number_tab[22]; + PyObject *__pyx_codeobj_tab[450]; + PyObject *__pyx_string_tab[1383]; + PyObject *__pyx_number_tab[26]; /* #### Code section: module_state_contents ### */ /* CommonTypesMetaclass.module_state_decls */ PyTypeObject *__pyx_CommonTypesMetaclassType; @@ -3458,1158 +3481,1387 @@ static __pyx_mstatetype * const __pyx_mstate_global = &__pyx_mstate_global_stati /* #### Code section: constant_name_defines ### */ #define __pyx_kp_u_ __pyx_string_tab[0] #define __pyx_kp_u_3 __pyx_string_tab[1] -#define __pyx_kp_u_Allocation_Error_TA_ALLOC_ERR __pyx_string_tab[2] -#define __pyx_kp_u_Bad_Object_TA_BAD_OBJECT __pyx_string_tab[3] -#define __pyx_kp_u_Bad_Parameter_TA_BAD_PARAM __pyx_string_tab[4] -#define __pyx_kp_u_Bull_Bear_Pattern_Bearish_0_Neut __pyx_string_tab[5] -#define __pyx_kp_u_Dashed_Line __pyx_string_tab[6] -#define __pyx_kp_u_Dotted_Line __pyx_string_tab[7] -#define __pyx_kp_u_Double_Exponential_Moving_Averag __pyx_string_tab[8] -#define __pyx_kp_u_Exponential_Moving_Average __pyx_string_tab[9] -#define __pyx_kp_u_Function_Not_Found_TA_FUNC_NOT_F __pyx_string_tab[10] -#define __pyx_kp_u_Function_has_an_unstable_period __pyx_string_tab[11] -#define __pyx_kp_u_Group_Not_Found_TA_GROUP_NOT_FOU __pyx_string_tab[12] -#define __pyx_kp_u_Input_Not_All_Initialized_TA_INP __pyx_string_tab[13] -#define __pyx_kp_u_Inputs __pyx_string_tab[14] -#define __pyx_kp_u_Internal_Error_TA_INTERNAL_ERROR __pyx_string_tab[15] -#define __pyx_kp_u_Invalid_Handle_TA_INVALID_HANDLE __pyx_string_tab[16] -#define __pyx_kp_u_Invalid_List_Type_TA_INVALID_LIS __pyx_string_tab[17] -#define __pyx_kp_u_Invalid_Parameter_Function_TA_IN __pyx_string_tab[18] -#define __pyx_kp_u_Invalid_Parameter_Holder_TA_INVA __pyx_string_tab[19] -#define __pyx_kp_u_Invalid_Parameter_Holder_Type_TA __pyx_string_tab[20] -#define __pyx_kp_u_Invalid_parameter_value_for __pyx_string_tab[21] -#define __pyx_kp_u_Kaufman_Adaptive_Moving_Average __pyx_string_tab[22] -#define __pyx_kp_u_Library_Not_Initialized_TA_LIB_N __pyx_string_tab[23] -#define __pyx_kp_u_MESA_Adaptive_Moving_Average __pyx_string_tab[24] -#define __pyx_kp_u_None __pyx_string_tab[25] -#define __pyx_kp_u_Not_Supported_TA_NOT_SUPPORTED __pyx_string_tab[26] -#define __pyx_kp_u_Not_enough_price_arguments_expec __pyx_string_tab[27] -#define __pyx_kp_u_Note_that_Cython_is_deliberately __pyx_string_tab[28] -#define __pyx_kp_u_Out_of_Range_End_Index_TA_OUT_OF __pyx_string_tab[29] -#define __pyx_kp_u_Out_of_Range_Start_Index_TA_OUT __pyx_string_tab[30] -#define __pyx_kp_u_Output_Not_All_Initialized_TA_OU __pyx_string_tab[31] -#define __pyx_kp_u_Output_can_be_negative __pyx_string_tab[32] -#define __pyx_kp_u_Output_can_be_positive __pyx_string_tab[33] -#define __pyx_kp_u_Output_can_be_zero __pyx_string_tab[34] -#define __pyx_kp_u_Output_is_a_candlestick __pyx_string_tab[35] -#define __pyx_kp_u_Output_is_over_volume __pyx_string_tab[36] -#define __pyx_kp_u_Output_scale_same_as_input __pyx_string_tab[37] -#define __pyx_kp_u_Outputs __pyx_string_tab[38] -#define __pyx_kp_u_Parameters __pyx_string_tab[39] -#define __pyx_kp_u_Pattern_Bool __pyx_string_tab[40] -#define __pyx_kp_u_Simple_Moving_Average __pyx_string_tab[41] -#define __pyx_kp_u_Strength_Pattern_200_100_Bearish __pyx_string_tab[42] -#define __pyx_kp_u_This_is_a_pythonic_wrapper_arou __pyx_string_tab[43] -#define __pyx_kp_u_Too_many_price_arguments_expecte __pyx_string_tab[44] -#define __pyx_kp_u_Triangular_Moving_Average __pyx_string_tab[45] -#define __pyx_kp_u_Triple_Exponential_Moving_Averag __pyx_string_tab[46] -#define __pyx_kp_u_Triple_Generalized_Double_Expone __pyx_string_tab[47] -#define __pyx_kp_u_Unknown_Error __pyx_string_tab[48] -#define __pyx_kp_u_Unknown_Error_TA_UNKNOWN_ERR __pyx_string_tab[49] -#define __pyx_kp_u_Values_represent_a_lower_limit __pyx_string_tab[50] -#define __pyx_kp_u_Values_represent_an_upper_limit __pyx_string_tab[51] -#define __pyx_kp_u_Weighted_Moving_Average __pyx_string_tab[52] -#define __pyx_kp_u__10 __pyx_string_tab[53] -#define __pyx_kp_u__11 __pyx_string_tab[54] -#define __pyx_kp_u__12 __pyx_string_tab[55] -#define __pyx_kp_u__13 __pyx_string_tab[56] -#define __pyx_kp_u__14 __pyx_string_tab[57] -#define __pyx_kp_u__15 __pyx_string_tab[58] -#define __pyx_kp_u__2 __pyx_string_tab[59] -#define __pyx_kp_u__3 __pyx_string_tab[60] -#define __pyx_kp_u__4 __pyx_string_tab[61] -#define __pyx_kp_u__5 __pyx_string_tab[62] -#define __pyx_kp_u__6 __pyx_string_tab[63] -#define __pyx_kp_u__7 __pyx_string_tab[64] -#define __pyx_kp_u__8 __pyx_string_tab[65] -#define __pyx_kp_u__9 __pyx_string_tab[66] -#define __pyx_kp_u_add_note __pyx_string_tab[67] -#define __pyx_kp_u_any_ndarray __pyx_string_tab[68] -#define __pyx_kp_u_display_name_s_group_s __pyx_string_tab[69] -#define __pyx_kp_u_expected __pyx_string_tab[70] -#define __pyx_kp_u_function_failed_with_error_code __pyx_string_tab[71] -#define __pyx_kp_u_got __pyx_string_tab[72] -#define __pyx_kp_u_input_array_has_wrong_dimensions __pyx_string_tab[73] -#define __pyx_kp_u_input_array_lengths_are_differen __pyx_string_tab[74] -#define __pyx_kp_u_input_array_type_is_not_double __pyx_string_tab[75] -#define __pyx_kp_u_input_arrays_2 __pyx_string_tab[76] -#define __pyx_kp_u_input_arrays_parameter_missing_r __pyx_string_tab[77] -#define __pyx_kp_u_integer_values_are_100_0_or_100 __pyx_string_tab[78] -#define __pyx_kp_u_numpy__core_multiarray_failed_to __pyx_string_tab[79] -#define __pyx_kp_u_numpy__core_umath_failed_to_impo __pyx_string_tab[80] -#define __pyx_kp_u_s_2 __pyx_string_tab[81] -#define __pyx_kp_u_s_3 __pyx_string_tab[82] -#define __pyx_kp_u_s_4 __pyx_string_tab[83] -#define __pyx_kp_u_stream__s __pyx_string_tab[84] -#define __pyx_kp_u_talib__abstract_pxi __pyx_string_tab[85] -#define __pyx_kp_u_talib__common_pxi __pyx_string_tab[86] -#define __pyx_kp_u_talib__func_pxi __pyx_string_tab[87] -#define __pyx_kp_u_talib__stream_pxi __pyx_string_tab[88] -#define __pyx_kp_u_talib_collections __pyx_string_tab[89] -#define __pyx_kp_u_talib_math __pyx_string_tab[90] -#define __pyx_kp_u_talib_numpy __pyx_string_tab[91] -#define __pyx_kp_u_talib_ordereddict __pyx_string_tab[92] -#define __pyx_kp_u_talib_pandas __pyx_string_tab[93] -#define __pyx_kp_u_talib_polars __pyx_string_tab[94] -#define __pyx_kp_u_talib_sys __pyx_string_tab[95] -#define __pyx_kp_u_talib_threading __pyx_string_tab[96] -#define __pyx_n_u_ACCBANDS __pyx_string_tab[97] -#define __pyx_n_u_ACOS __pyx_string_tab[98] -#define __pyx_n_u_AD __pyx_string_tab[99] -#define __pyx_n_u_ADD __pyx_string_tab[100] -#define __pyx_n_u_ADOSC __pyx_string_tab[101] -#define __pyx_n_u_ADX __pyx_string_tab[102] -#define __pyx_n_u_ADXR __pyx_string_tab[103] -#define __pyx_n_u_ALL __pyx_string_tab[104] -#define __pyx_n_u_APO __pyx_string_tab[105] -#define __pyx_n_u_AROON __pyx_string_tab[106] -#define __pyx_n_u_AROONOSC __pyx_string_tab[107] -#define __pyx_n_u_ARRAY_TYPES __pyx_string_tab[108] -#define __pyx_n_u_ASIN __pyx_string_tab[109] -#define __pyx_n_u_ATAN __pyx_string_tab[110] -#define __pyx_n_u_ATR __pyx_string_tab[111] -#define __pyx_n_u_AVGDEV __pyx_string_tab[112] -#define __pyx_n_u_AVGPRICE __pyx_string_tab[113] -#define __pyx_n_u_AllCandleSettings __pyx_string_tab[114] -#define __pyx_n_u_BBANDS __pyx_string_tab[115] -#define __pyx_n_u_BETA __pyx_string_tab[116] -#define __pyx_n_u_BOP __pyx_string_tab[117] -#define __pyx_n_u_BodyDoji __pyx_string_tab[118] -#define __pyx_n_u_BodyLong __pyx_string_tab[119] -#define __pyx_n_u_BodyShort __pyx_string_tab[120] -#define __pyx_n_u_BodyVeryLong __pyx_string_tab[121] -#define __pyx_n_u_CCI __pyx_string_tab[122] -#define __pyx_n_u_CDL2CROWS __pyx_string_tab[123] -#define __pyx_n_u_CDL3BLACKCROWS __pyx_string_tab[124] -#define __pyx_n_u_CDL3INSIDE __pyx_string_tab[125] -#define __pyx_n_u_CDL3LINESTRIKE __pyx_string_tab[126] -#define __pyx_n_u_CDL3OUTSIDE __pyx_string_tab[127] -#define __pyx_n_u_CDL3STARSINSOUTH __pyx_string_tab[128] -#define __pyx_n_u_CDL3WHITESOLDIERS __pyx_string_tab[129] -#define __pyx_n_u_CDLABANDONEDBABY __pyx_string_tab[130] -#define __pyx_n_u_CDLADVANCEBLOCK __pyx_string_tab[131] -#define __pyx_n_u_CDLBELTHOLD __pyx_string_tab[132] -#define __pyx_n_u_CDLBREAKAWAY __pyx_string_tab[133] -#define __pyx_n_u_CDLCLOSINGMARUBOZU __pyx_string_tab[134] -#define __pyx_n_u_CDLCONCEALBABYSWALL __pyx_string_tab[135] -#define __pyx_n_u_CDLCOUNTERATTACK __pyx_string_tab[136] -#define __pyx_n_u_CDLDARKCLOUDCOVER __pyx_string_tab[137] -#define __pyx_n_u_CDLDOJI __pyx_string_tab[138] -#define __pyx_n_u_CDLDOJISTAR __pyx_string_tab[139] -#define __pyx_n_u_CDLDRAGONFLYDOJI __pyx_string_tab[140] -#define __pyx_n_u_CDLENGULFING __pyx_string_tab[141] -#define __pyx_n_u_CDLEVENINGDOJISTAR __pyx_string_tab[142] -#define __pyx_n_u_CDLEVENINGSTAR __pyx_string_tab[143] -#define __pyx_n_u_CDLGAPSIDESIDEWHITE __pyx_string_tab[144] -#define __pyx_n_u_CDLGRAVESTONEDOJI __pyx_string_tab[145] -#define __pyx_n_u_CDLHAMMER __pyx_string_tab[146] -#define __pyx_n_u_CDLHANGINGMAN __pyx_string_tab[147] -#define __pyx_n_u_CDLHARAMI __pyx_string_tab[148] -#define __pyx_n_u_CDLHARAMICROSS __pyx_string_tab[149] -#define __pyx_n_u_CDLHIGHWAVE __pyx_string_tab[150] -#define __pyx_n_u_CDLHIKKAKE __pyx_string_tab[151] -#define __pyx_n_u_CDLHIKKAKEMOD __pyx_string_tab[152] -#define __pyx_n_u_CDLHOMINGPIGEON __pyx_string_tab[153] -#define __pyx_n_u_CDLIDENTICAL3CROWS __pyx_string_tab[154] -#define __pyx_n_u_CDLINNECK __pyx_string_tab[155] -#define __pyx_n_u_CDLINVERTEDHAMMER __pyx_string_tab[156] -#define __pyx_n_u_CDLKICKING __pyx_string_tab[157] -#define __pyx_n_u_CDLKICKINGBYLENGTH __pyx_string_tab[158] -#define __pyx_n_u_CDLLADDERBOTTOM __pyx_string_tab[159] -#define __pyx_n_u_CDLLONGLEGGEDDOJI __pyx_string_tab[160] -#define __pyx_n_u_CDLLONGLINE __pyx_string_tab[161] -#define __pyx_n_u_CDLMARUBOZU __pyx_string_tab[162] -#define __pyx_n_u_CDLMATCHINGLOW __pyx_string_tab[163] -#define __pyx_n_u_CDLMATHOLD __pyx_string_tab[164] -#define __pyx_n_u_CDLMORNINGDOJISTAR __pyx_string_tab[165] -#define __pyx_n_u_CDLMORNINGSTAR __pyx_string_tab[166] -#define __pyx_n_u_CDLONNECK __pyx_string_tab[167] -#define __pyx_n_u_CDLPIERCING __pyx_string_tab[168] -#define __pyx_n_u_CDLRICKSHAWMAN __pyx_string_tab[169] -#define __pyx_n_u_CDLRISEFALL3METHODS __pyx_string_tab[170] -#define __pyx_n_u_CDLSEPARATINGLINES __pyx_string_tab[171] -#define __pyx_n_u_CDLSHOOTINGSTAR __pyx_string_tab[172] -#define __pyx_n_u_CDLSHORTLINE __pyx_string_tab[173] -#define __pyx_n_u_CDLSPINNINGTOP __pyx_string_tab[174] -#define __pyx_n_u_CDLSTALLEDPATTERN __pyx_string_tab[175] -#define __pyx_n_u_CDLSTICKSANDWICH __pyx_string_tab[176] -#define __pyx_n_u_CDLTAKURI __pyx_string_tab[177] -#define __pyx_n_u_CDLTASUKIGAP __pyx_string_tab[178] -#define __pyx_n_u_CDLTHRUSTING __pyx_string_tab[179] -#define __pyx_n_u_CDLTRISTAR __pyx_string_tab[180] -#define __pyx_n_u_CDLUNIQUE3RIVER __pyx_string_tab[181] -#define __pyx_n_u_CDLUPSIDEGAP2CROWS __pyx_string_tab[182] -#define __pyx_n_u_CDLXSIDEGAP3METHODS __pyx_string_tab[183] -#define __pyx_n_u_CEIL __pyx_string_tab[184] -#define __pyx_n_u_CMO __pyx_string_tab[185] -#define __pyx_n_u_CORREL __pyx_string_tab[186] -#define __pyx_n_u_COS __pyx_string_tab[187] -#define __pyx_n_u_COSH __pyx_string_tab[188] -#define __pyx_n_u_CandleSettingType __pyx_string_tab[189] -#define __pyx_n_u_DEMA __pyx_string_tab[190] -#define __pyx_n_u_DIV __pyx_string_tab[191] -#define __pyx_n_u_DX __pyx_string_tab[192] -#define __pyx_n_u_DataFrame __pyx_string_tab[193] -#define __pyx_n_u_Dot __pyx_string_tab[194] -#define __pyx_n_u_EMA __pyx_string_tab[195] -#define __pyx_n_u_EXP __pyx_string_tab[196] -#define __pyx_n_u_Equal __pyx_string_tab[197] -#define __pyx_n_u_FLOOR __pyx_string_tab[198] -#define __pyx_n_u_Far __pyx_string_tab[199] -#define __pyx_n_u_Function __pyx_string_tab[200] -#define __pyx_n_u_Function___call __pyx_string_tab[201] -#define __pyx_n_u_Function___call_function __pyx_string_tab[202] -#define __pyx_n_u_Function___check_opt_input_value __pyx_string_tab[203] -#define __pyx_n_u_Function___get_opt_input_value __pyx_string_tab[204] -#define __pyx_n_u_Function___init __pyx_string_tab[205] -#define __pyx_n_u_Function___input_price_series_na __pyx_string_tab[206] -#define __pyx_n_u_Function___local __pyx_string_tab[207] -#define __pyx_n_u_Function___repr __pyx_string_tab[208] -#define __pyx_n_u_Function___str __pyx_string_tab[209] -#define __pyx_n_u_Function___unicode __pyx_string_tab[210] -#define __pyx_n_u_Function__call_function __pyx_string_tab[211] -#define __pyx_n_u_Function__check_opt_input_value __pyx_string_tab[212] -#define __pyx_n_u_Function__get_opt_input_value __pyx_string_tab[213] -#define __pyx_n_u_Function__input_price_series_na __pyx_string_tab[214] -#define __pyx_n_u_Function__local __pyx_string_tab[215] -#define __pyx_n_u_Function__localdata __pyx_string_tab[216] -#define __pyx_n_u_Function__name __pyx_string_tab[217] -#define __pyx_n_u_Function__namestr __pyx_string_tab[218] -#define __pyx_n_u_Function_function_flags __pyx_string_tab[219] -#define __pyx_n_u_Function_get_input_arrays __pyx_string_tab[220] -#define __pyx_n_u_Function_get_input_names __pyx_string_tab[221] -#define __pyx_n_u_Function_get_parameters __pyx_string_tab[222] -#define __pyx_n_u_Function_info __pyx_string_tab[223] -#define __pyx_n_u_Function_lookback __pyx_string_tab[224] -#define __pyx_n_u_Function_output_flags __pyx_string_tab[225] -#define __pyx_n_u_Function_output_names __pyx_string_tab[226] -#define __pyx_n_u_Function_outputs __pyx_string_tab[227] -#define __pyx_n_u_Function_run __pyx_string_tab[228] -#define __pyx_n_u_Function_set_function_args __pyx_string_tab[229] -#define __pyx_n_u_Function_set_input_arrays __pyx_string_tab[230] -#define __pyx_n_u_Function_set_input_names __pyx_string_tab[231] -#define __pyx_n_u_Function_set_parameters __pyx_string_tab[232] -#define __pyx_n_u_HT_DCPERIOD __pyx_string_tab[233] -#define __pyx_n_u_HT_DCPHASE __pyx_string_tab[234] -#define __pyx_n_u_HT_PHASOR __pyx_string_tab[235] -#define __pyx_n_u_HT_SINE __pyx_string_tab[236] -#define __pyx_n_u_HT_TRENDLINE __pyx_string_tab[237] -#define __pyx_n_u_HT_TRENDMODE __pyx_string_tab[238] -#define __pyx_n_u_HighLow __pyx_string_tab[239] -#define __pyx_n_u_Histogram __pyx_string_tab[240] -#define __pyx_n_u_IMI __pyx_string_tab[241] -#define __pyx_n_u_INPUT_ARRAYS_TYPES __pyx_string_tab[242] -#define __pyx_n_u_INPUT_PRICE_SERIES_DEFAULTS __pyx_string_tab[243] -#define __pyx_n_u_KAMA __pyx_string_tab[244] -#define __pyx_n_u_LINEARREG __pyx_string_tab[245] -#define __pyx_n_u_LINEARREG_ANGLE __pyx_string_tab[246] -#define __pyx_n_u_LINEARREG_INTERCEPT __pyx_string_tab[247] -#define __pyx_n_u_LINEARREG_SLOPE __pyx_string_tab[248] -#define __pyx_n_u_LN __pyx_string_tab[249] -#define __pyx_n_u_LOG10 __pyx_string_tab[250] -#define __pyx_n_u_Line __pyx_string_tab[251] -#define __pyx_n_u_MA __pyx_string_tab[252] -#define __pyx_n_u_MACD __pyx_string_tab[253] -#define __pyx_n_u_MACDEXT __pyx_string_tab[254] -#define __pyx_n_u_MACDFIX __pyx_string_tab[255] -#define __pyx_n_u_MAMA __pyx_string_tab[256] -#define __pyx_n_u_MAVP __pyx_string_tab[257] -#define __pyx_n_u_MAX __pyx_string_tab[258] -#define __pyx_n_u_MAXINDEX __pyx_string_tab[259] -#define __pyx_n_u_MA_Type __pyx_string_tab[260] -#define __pyx_n_u_MA_Type___getitem __pyx_string_tab[261] -#define __pyx_n_u_MA_Type___init __pyx_string_tab[262] -#define __pyx_n_u_MEDPRICE __pyx_string_tab[263] -#define __pyx_n_u_MFI __pyx_string_tab[264] -#define __pyx_n_u_MIDPOINT __pyx_string_tab[265] -#define __pyx_n_u_MIDPRICE __pyx_string_tab[266] -#define __pyx_n_u_MIN __pyx_string_tab[267] -#define __pyx_n_u_MININDEX __pyx_string_tab[268] -#define __pyx_n_u_MINMAX __pyx_string_tab[269] -#define __pyx_n_u_MINMAXINDEX __pyx_string_tab[270] -#define __pyx_n_u_MINUS_DI __pyx_string_tab[271] -#define __pyx_n_u_MINUS_DM __pyx_string_tab[272] -#define __pyx_n_u_MOM __pyx_string_tab[273] -#define __pyx_n_u_MULT __pyx_string_tab[274] -#define __pyx_n_u_NATR __pyx_string_tab[275] -#define __pyx_n_u_NONE __pyx_string_tab[276] -#define __pyx_n_u_Near __pyx_string_tab[277] -#define __pyx_n_u_OBV __pyx_string_tab[278] -#define __pyx_n_u_OrderedDict __pyx_string_tab[279] -#define __pyx_n_u_PANDAS_DATAFRAME __pyx_string_tab[280] -#define __pyx_n_u_PANDAS_SERIES __pyx_string_tab[281] -#define __pyx_n_u_PLUS_DI __pyx_string_tab[282] -#define __pyx_n_u_PLUS_DM __pyx_string_tab[283] -#define __pyx_n_u_POLARS_DATAFRAME __pyx_string_tab[284] -#define __pyx_n_u_POLARS_SERIES __pyx_string_tab[285] -#define __pyx_n_u_PPO __pyx_string_tab[286] -#define __pyx_n_u_Pyx_PyDict_NextRef __pyx_string_tab[287] -#define __pyx_n_u_ROC __pyx_string_tab[288] -#define __pyx_n_u_ROCP __pyx_string_tab[289] -#define __pyx_n_u_ROCR __pyx_string_tab[290] -#define __pyx_n_u_ROCR100 __pyx_string_tab[291] -#define __pyx_n_u_RSI __pyx_string_tab[292] -#define __pyx_n_u_RangeType __pyx_string_tab[293] -#define __pyx_n_u_RealBody __pyx_string_tab[294] -#define __pyx_n_u_SAR __pyx_string_tab[295] -#define __pyx_n_u_SAREXT __pyx_string_tab[296] -#define __pyx_n_u_SIN __pyx_string_tab[297] -#define __pyx_n_u_SINH __pyx_string_tab[298] -#define __pyx_n_u_SMA __pyx_string_tab[299] -#define __pyx_n_u_SQRT __pyx_string_tab[300] -#define __pyx_n_u_STDDEV __pyx_string_tab[301] -#define __pyx_n_u_STOCH __pyx_string_tab[302] -#define __pyx_n_u_STOCHF __pyx_string_tab[303] -#define __pyx_n_u_STOCHRSI __pyx_string_tab[304] -#define __pyx_n_u_SUB __pyx_string_tab[305] -#define __pyx_n_u_SUM __pyx_string_tab[306] -#define __pyx_n_u_Series __pyx_string_tab[307] -#define __pyx_n_u_ShadowLong __pyx_string_tab[308] -#define __pyx_n_u_ShadowShort __pyx_string_tab[309] -#define __pyx_n_u_ShadowVeryLong __pyx_string_tab[310] -#define __pyx_n_u_ShadowVeryShort __pyx_string_tab[311] -#define __pyx_n_u_Shadows __pyx_string_tab[312] -#define __pyx_n_u_T3 __pyx_string_tab[313] -#define __pyx_n_u_TAN __pyx_string_tab[314] -#define __pyx_n_u_TANH __pyx_string_tab[315] -#define __pyx_n_u_TA_ACCBANDS __pyx_string_tab[316] -#define __pyx_n_u_TA_ACOS __pyx_string_tab[317] -#define __pyx_n_u_TA_AD __pyx_string_tab[318] -#define __pyx_n_u_TA_ADD __pyx_string_tab[319] -#define __pyx_n_u_TA_ADOSC __pyx_string_tab[320] -#define __pyx_n_u_TA_ADX __pyx_string_tab[321] -#define __pyx_n_u_TA_ADXR __pyx_string_tab[322] -#define __pyx_n_u_TA_APO __pyx_string_tab[323] -#define __pyx_n_u_TA_AROON __pyx_string_tab[324] -#define __pyx_n_u_TA_AROONOSC __pyx_string_tab[325] -#define __pyx_n_u_TA_ASIN __pyx_string_tab[326] -#define __pyx_n_u_TA_ATAN __pyx_string_tab[327] -#define __pyx_n_u_TA_ATR __pyx_string_tab[328] -#define __pyx_n_u_TA_AVGDEV __pyx_string_tab[329] -#define __pyx_n_u_TA_AVGPRICE __pyx_string_tab[330] -#define __pyx_n_u_TA_BBANDS __pyx_string_tab[331] -#define __pyx_n_u_TA_BETA __pyx_string_tab[332] -#define __pyx_n_u_TA_BOP __pyx_string_tab[333] -#define __pyx_n_u_TA_CCI __pyx_string_tab[334] -#define __pyx_n_u_TA_CDL2CROWS __pyx_string_tab[335] -#define __pyx_n_u_TA_CDL3BLACKCROWS __pyx_string_tab[336] -#define __pyx_n_u_TA_CDL3INSIDE __pyx_string_tab[337] -#define __pyx_n_u_TA_CDL3LINESTRIKE __pyx_string_tab[338] -#define __pyx_n_u_TA_CDL3OUTSIDE __pyx_string_tab[339] -#define __pyx_n_u_TA_CDL3STARSINSOUTH __pyx_string_tab[340] -#define __pyx_n_u_TA_CDL3WHITESOLDIERS __pyx_string_tab[341] -#define __pyx_n_u_TA_CDLABANDONEDBABY __pyx_string_tab[342] -#define __pyx_n_u_TA_CDLADVANCEBLOCK __pyx_string_tab[343] -#define __pyx_n_u_TA_CDLBELTHOLD __pyx_string_tab[344] -#define __pyx_n_u_TA_CDLBREAKAWAY __pyx_string_tab[345] -#define __pyx_n_u_TA_CDLCLOSINGMARUBOZU __pyx_string_tab[346] -#define __pyx_n_u_TA_CDLCONCEALBABYSWALL __pyx_string_tab[347] -#define __pyx_n_u_TA_CDLCOUNTERATTACK __pyx_string_tab[348] -#define __pyx_n_u_TA_CDLDARKCLOUDCOVER __pyx_string_tab[349] -#define __pyx_n_u_TA_CDLDOJI __pyx_string_tab[350] -#define __pyx_n_u_TA_CDLDOJISTAR __pyx_string_tab[351] -#define __pyx_n_u_TA_CDLDRAGONFLYDOJI __pyx_string_tab[352] -#define __pyx_n_u_TA_CDLENGULFING __pyx_string_tab[353] -#define __pyx_n_u_TA_CDLEVENINGDOJISTAR __pyx_string_tab[354] -#define __pyx_n_u_TA_CDLEVENINGSTAR __pyx_string_tab[355] -#define __pyx_n_u_TA_CDLGAPSIDESIDEWHITE __pyx_string_tab[356] -#define __pyx_n_u_TA_CDLGRAVESTONEDOJI __pyx_string_tab[357] -#define __pyx_n_u_TA_CDLHAMMER __pyx_string_tab[358] -#define __pyx_n_u_TA_CDLHANGINGMAN __pyx_string_tab[359] -#define __pyx_n_u_TA_CDLHARAMI __pyx_string_tab[360] -#define __pyx_n_u_TA_CDLHARAMICROSS __pyx_string_tab[361] -#define __pyx_n_u_TA_CDLHIGHWAVE __pyx_string_tab[362] -#define __pyx_n_u_TA_CDLHIKKAKE __pyx_string_tab[363] -#define __pyx_n_u_TA_CDLHIKKAKEMOD __pyx_string_tab[364] -#define __pyx_n_u_TA_CDLHOMINGPIGEON __pyx_string_tab[365] -#define __pyx_n_u_TA_CDLIDENTICAL3CROWS __pyx_string_tab[366] -#define __pyx_n_u_TA_CDLINNECK __pyx_string_tab[367] -#define __pyx_n_u_TA_CDLINVERTEDHAMMER __pyx_string_tab[368] -#define __pyx_n_u_TA_CDLKICKING __pyx_string_tab[369] -#define __pyx_n_u_TA_CDLKICKINGBYLENGTH __pyx_string_tab[370] -#define __pyx_n_u_TA_CDLLADDERBOTTOM __pyx_string_tab[371] -#define __pyx_n_u_TA_CDLLONGLEGGEDDOJI __pyx_string_tab[372] -#define __pyx_n_u_TA_CDLLONGLINE __pyx_string_tab[373] -#define __pyx_n_u_TA_CDLMARUBOZU __pyx_string_tab[374] -#define __pyx_n_u_TA_CDLMATCHINGLOW __pyx_string_tab[375] -#define __pyx_n_u_TA_CDLMATHOLD __pyx_string_tab[376] -#define __pyx_n_u_TA_CDLMORNINGDOJISTAR __pyx_string_tab[377] -#define __pyx_n_u_TA_CDLMORNINGSTAR __pyx_string_tab[378] -#define __pyx_n_u_TA_CDLONNECK __pyx_string_tab[379] -#define __pyx_n_u_TA_CDLPIERCING __pyx_string_tab[380] -#define __pyx_n_u_TA_CDLRICKSHAWMAN __pyx_string_tab[381] -#define __pyx_n_u_TA_CDLRISEFALL3METHODS __pyx_string_tab[382] -#define __pyx_n_u_TA_CDLSEPARATINGLINES __pyx_string_tab[383] -#define __pyx_n_u_TA_CDLSHOOTINGSTAR __pyx_string_tab[384] -#define __pyx_n_u_TA_CDLSHORTLINE __pyx_string_tab[385] -#define __pyx_n_u_TA_CDLSPINNINGTOP __pyx_string_tab[386] -#define __pyx_n_u_TA_CDLSTALLEDPATTERN __pyx_string_tab[387] -#define __pyx_n_u_TA_CDLSTICKSANDWICH __pyx_string_tab[388] -#define __pyx_n_u_TA_CDLTAKURI __pyx_string_tab[389] -#define __pyx_n_u_TA_CDLTASUKIGAP __pyx_string_tab[390] -#define __pyx_n_u_TA_CDLTHRUSTING __pyx_string_tab[391] -#define __pyx_n_u_TA_CDLTRISTAR __pyx_string_tab[392] -#define __pyx_n_u_TA_CDLUNIQUE3RIVER __pyx_string_tab[393] -#define __pyx_n_u_TA_CDLUPSIDEGAP2CROWS __pyx_string_tab[394] -#define __pyx_n_u_TA_CDLXSIDEGAP3METHODS __pyx_string_tab[395] -#define __pyx_n_u_TA_CEIL __pyx_string_tab[396] -#define __pyx_n_u_TA_CMO __pyx_string_tab[397] -#define __pyx_n_u_TA_CORREL __pyx_string_tab[398] -#define __pyx_n_u_TA_COS __pyx_string_tab[399] -#define __pyx_n_u_TA_COSH __pyx_string_tab[400] -#define __pyx_n_u_TA_DEMA __pyx_string_tab[401] -#define __pyx_n_u_TA_DIV __pyx_string_tab[402] -#define __pyx_n_u_TA_DX __pyx_string_tab[403] -#define __pyx_n_u_TA_EMA __pyx_string_tab[404] -#define __pyx_n_u_TA_EXP __pyx_string_tab[405] -#define __pyx_n_u_TA_FLOOR __pyx_string_tab[406] -#define __pyx_n_u_TA_FUNCTION_NAMES __pyx_string_tab[407] -#define __pyx_n_u_TA_FUNC_FLAGS __pyx_string_tab[408] -#define __pyx_n_u_TA_FuncTableAlloc __pyx_string_tab[409] -#define __pyx_n_u_TA_FuncTableFree __pyx_string_tab[410] -#define __pyx_n_u_TA_GetFuncHandle __pyx_string_tab[411] -#define __pyx_n_u_TA_GetFuncInfo __pyx_string_tab[412] -#define __pyx_n_u_TA_GetInputParameterInfo __pyx_string_tab[413] -#define __pyx_n_u_TA_GetLookback __pyx_string_tab[414] -#define __pyx_n_u_TA_GetOptInputParameterInfo __pyx_string_tab[415] -#define __pyx_n_u_TA_GetOutputParameterInfo __pyx_string_tab[416] -#define __pyx_n_u_TA_GroupTableAlloc __pyx_string_tab[417] -#define __pyx_n_u_TA_GroupTableFree __pyx_string_tab[418] -#define __pyx_n_u_TA_HT_DCPERIOD __pyx_string_tab[419] -#define __pyx_n_u_TA_HT_DCPHASE __pyx_string_tab[420] -#define __pyx_n_u_TA_HT_PHASOR __pyx_string_tab[421] -#define __pyx_n_u_TA_HT_SINE __pyx_string_tab[422] -#define __pyx_n_u_TA_HT_TRENDLINE __pyx_string_tab[423] -#define __pyx_n_u_TA_HT_TRENDMODE __pyx_string_tab[424] -#define __pyx_n_u_TA_IMI __pyx_string_tab[425] -#define __pyx_n_u_TA_INPUT_FLAGS __pyx_string_tab[426] -#define __pyx_n_u_TA_Initialize __pyx_string_tab[427] -#define __pyx_n_u_TA_KAMA __pyx_string_tab[428] -#define __pyx_n_u_TA_LINEARREG __pyx_string_tab[429] -#define __pyx_n_u_TA_LINEARREG_ANGLE __pyx_string_tab[430] -#define __pyx_n_u_TA_LINEARREG_INTERCEPT __pyx_string_tab[431] -#define __pyx_n_u_TA_LINEARREG_SLOPE __pyx_string_tab[432] -#define __pyx_n_u_TA_LN __pyx_string_tab[433] -#define __pyx_n_u_TA_LOG10 __pyx_string_tab[434] -#define __pyx_n_u_TA_MA __pyx_string_tab[435] -#define __pyx_n_u_TA_MACD __pyx_string_tab[436] -#define __pyx_n_u_TA_MACDEXT __pyx_string_tab[437] -#define __pyx_n_u_TA_MACDFIX __pyx_string_tab[438] -#define __pyx_n_u_TA_MAMA __pyx_string_tab[439] -#define __pyx_n_u_TA_MAVP __pyx_string_tab[440] -#define __pyx_n_u_TA_MAX __pyx_string_tab[441] -#define __pyx_n_u_TA_MAXINDEX __pyx_string_tab[442] -#define __pyx_n_u_TA_MEDPRICE __pyx_string_tab[443] -#define __pyx_n_u_TA_MFI __pyx_string_tab[444] -#define __pyx_n_u_TA_MIDPOINT __pyx_string_tab[445] -#define __pyx_n_u_TA_MIDPRICE __pyx_string_tab[446] -#define __pyx_n_u_TA_MIN __pyx_string_tab[447] -#define __pyx_n_u_TA_MININDEX __pyx_string_tab[448] -#define __pyx_n_u_TA_MINMAX __pyx_string_tab[449] -#define __pyx_n_u_TA_MINMAXINDEX __pyx_string_tab[450] -#define __pyx_n_u_TA_MINUS_DI __pyx_string_tab[451] -#define __pyx_n_u_TA_MINUS_DM __pyx_string_tab[452] -#define __pyx_n_u_TA_MOM __pyx_string_tab[453] -#define __pyx_n_u_TA_MULT __pyx_string_tab[454] -#define __pyx_n_u_TA_NATR __pyx_string_tab[455] -#define __pyx_n_u_TA_OBV __pyx_string_tab[456] -#define __pyx_n_u_TA_OUTPUT_FLAGS __pyx_string_tab[457] -#define __pyx_n_u_TA_PLUS_DI __pyx_string_tab[458] -#define __pyx_n_u_TA_PLUS_DM __pyx_string_tab[459] -#define __pyx_n_u_TA_PPO __pyx_string_tab[460] -#define __pyx_n_u_TA_ParamHolderAlloc __pyx_string_tab[461] -#define __pyx_n_u_TA_ParamHolderFree __pyx_string_tab[462] -#define __pyx_n_u_TA_ROC __pyx_string_tab[463] -#define __pyx_n_u_TA_ROCP __pyx_string_tab[464] -#define __pyx_n_u_TA_ROCR __pyx_string_tab[465] -#define __pyx_n_u_TA_ROCR100 __pyx_string_tab[466] -#define __pyx_n_u_TA_RSI __pyx_string_tab[467] -#define __pyx_n_u_TA_RestoreCandleDefaultSettings __pyx_string_tab[468] -#define __pyx_n_u_TA_SAR __pyx_string_tab[469] -#define __pyx_n_u_TA_SAREXT __pyx_string_tab[470] -#define __pyx_n_u_TA_SIN __pyx_string_tab[471] -#define __pyx_n_u_TA_SINH __pyx_string_tab[472] -#define __pyx_n_u_TA_SMA __pyx_string_tab[473] -#define __pyx_n_u_TA_SQRT __pyx_string_tab[474] -#define __pyx_n_u_TA_STDDEV __pyx_string_tab[475] -#define __pyx_n_u_TA_STOCH __pyx_string_tab[476] -#define __pyx_n_u_TA_STOCHF __pyx_string_tab[477] -#define __pyx_n_u_TA_STOCHRSI __pyx_string_tab[478] -#define __pyx_n_u_TA_SUB __pyx_string_tab[479] -#define __pyx_n_u_TA_SUM __pyx_string_tab[480] -#define __pyx_n_u_TA_SetCandleSettings __pyx_string_tab[481] -#define __pyx_n_u_TA_SetCompatibility __pyx_string_tab[482] -#define __pyx_n_u_TA_SetOptInputParamInteger __pyx_string_tab[483] -#define __pyx_n_u_TA_SetOptInputParamReal __pyx_string_tab[484] -#define __pyx_n_u_TA_SetUnstablePeriod __pyx_string_tab[485] -#define __pyx_n_u_TA_Shutdown __pyx_string_tab[486] -#define __pyx_n_u_TA_T3 __pyx_string_tab[487] -#define __pyx_n_u_TA_TAN __pyx_string_tab[488] -#define __pyx_n_u_TA_TANH __pyx_string_tab[489] -#define __pyx_n_u_TA_TEMA __pyx_string_tab[490] -#define __pyx_n_u_TA_TRANGE __pyx_string_tab[491] -#define __pyx_n_u_TA_TRIMA __pyx_string_tab[492] -#define __pyx_n_u_TA_TRIX __pyx_string_tab[493] -#define __pyx_n_u_TA_TSF __pyx_string_tab[494] -#define __pyx_n_u_TA_TYPPRICE __pyx_string_tab[495] -#define __pyx_n_u_TA_ULTOSC __pyx_string_tab[496] -#define __pyx_n_u_TA_VAR __pyx_string_tab[497] -#define __pyx_n_u_TA_WCLPRICE __pyx_string_tab[498] -#define __pyx_n_u_TA_WILLR __pyx_string_tab[499] -#define __pyx_n_u_TA_WMA __pyx_string_tab[500] -#define __pyx_n_u_TEMA __pyx_string_tab[501] -#define __pyx_n_u_TRANGE __pyx_string_tab[502] -#define __pyx_n_u_TRIMA __pyx_string_tab[503] -#define __pyx_n_u_TRIX __pyx_string_tab[504] -#define __pyx_n_u_TSF __pyx_string_tab[505] -#define __pyx_n_u_TYPPRICE __pyx_string_tab[506] -#define __pyx_n_u_ULTOSC __pyx_string_tab[507] -#define __pyx_n_u_VAR __pyx_string_tab[508] -#define __pyx_n_u_WCLPRICE __pyx_string_tab[509] -#define __pyx_n_u_WILLR __pyx_string_tab[510] -#define __pyx_n_u_WMA __pyx_string_tab[511] -#define __pyx_n_u_acceleration __pyx_string_tab[512] -#define __pyx_n_u_accelerationinitlong __pyx_string_tab[513] -#define __pyx_n_u_accelerationinitshort __pyx_string_tab[514] -#define __pyx_n_u_accelerationlong __pyx_string_tab[515] -#define __pyx_n_u_accelerationmaxlong __pyx_string_tab[516] -#define __pyx_n_u_accelerationmaxshort __pyx_string_tab[517] -#define __pyx_n_u_accelerationshort __pyx_string_tab[518] -#define __pyx_n_u_all __pyx_string_tab[519] -#define __pyx_n_u_annotate __pyx_string_tab[520] -#define __pyx_n_u_append __pyx_string_tab[521] -#define __pyx_n_u_arg __pyx_string_tab[522] -#define __pyx_n_u_args __pyx_string_tab[523] -#define __pyx_n_u_ascii __pyx_string_tab[524] -#define __pyx_n_u_astype __pyx_string_tab[525] -#define __pyx_n_u_asyncio_coroutines __pyx_string_tab[526] -#define __pyx_n_u_avgperiod __pyx_string_tab[527] -#define __pyx_n_u_b __pyx_string_tab[528] -#define __pyx_n_u_begidx __pyx_string_tab[529] -#define __pyx_n_u_bytes2str __pyx_string_tab[530] -#define __pyx_n_u_call __pyx_string_tab[531] -#define __pyx_n_u_call_function __pyx_string_tab[532] -#define __pyx_n_u_check_opt_input_value __pyx_string_tab[533] -#define __pyx_n_u_class_getitem __pyx_string_tab[534] -#define __pyx_n_u_cline_in_traceback __pyx_string_tab[535] -#define __pyx_n_u_clone __pyx_string_tab[536] -#define __pyx_n_u_close __pyx_string_tab[537] -#define __pyx_n_u_close_data __pyx_string_tab[538] -#define __pyx_n_u_collections __pyx_string_tab[539] -#define __pyx_n_u_column_stack __pyx_string_tab[540] -#define __pyx_n_u_columns __pyx_string_tab[541] -#define __pyx_n_u_copy __pyx_string_tab[542] -#define __pyx_n_u_d __pyx_string_tab[543] -#define __pyx_n_u_decode __pyx_string_tab[544] -#define __pyx_n_u_default_value __pyx_string_tab[545] -#define __pyx_n_u_defaults __pyx_string_tab[546] -#define __pyx_n_u_display_name __pyx_string_tab[547] -#define __pyx_n_u_doc __pyx_string_tab[548] -#define __pyx_n_u_docs __pyx_string_tab[549] -#define __pyx_n_u_documentation __pyx_string_tab[550] -#define __pyx_n_u_empty __pyx_string_tab[551] -#define __pyx_n_u_endidx __pyx_string_tab[552] -#define __pyx_n_u_enumerate __pyx_string_tab[553] -#define __pyx_n_u_factor __pyx_string_tab[554] -#define __pyx_n_u_fastd_matype __pyx_string_tab[555] -#define __pyx_n_u_fastd_period __pyx_string_tab[556] -#define __pyx_n_u_fastk_period __pyx_string_tab[557] -#define __pyx_n_u_fastlimit __pyx_string_tab[558] -#define __pyx_n_u_fastmatype __pyx_string_tab[559] -#define __pyx_n_u_fastperiod __pyx_string_tab[560] -#define __pyx_n_u_flag __pyx_string_tab[561] -#define __pyx_n_u_flags __pyx_string_tab[562] -#define __pyx_n_u_flags_lookup_dict __pyx_string_tab[563] -#define __pyx_n_u_func __pyx_string_tab[564] -#define __pyx_n_u_func_args __pyx_string_tab[565] -#define __pyx_n_u_func_info __pyx_string_tab[566] -#define __pyx_n_u_func_line __pyx_string_tab[567] -#define __pyx_n_u_func_object __pyx_string_tab[568] -#define __pyx_n_u_function_flags __pyx_string_tab[569] -#define __pyx_n_u_function_name __pyx_string_tab[570] -#define __pyx_n_u_functions __pyx_string_tab[571] -#define __pyx_n_u_get_defaults_and_docs __pyx_string_tab[572] -#define __pyx_n_u_get_flags __pyx_string_tab[573] -#define __pyx_n_u_get_input_arrays __pyx_string_tab[574] -#define __pyx_n_u_get_input_names __pyx_string_tab[575] -#define __pyx_n_u_get_opt_input_value __pyx_string_tab[576] -#define __pyx_n_u_get_parameters __pyx_string_tab[577] -#define __pyx_n_u_getitem __pyx_string_tab[578] -#define __pyx_n_u_group __pyx_string_tab[579] -#define __pyx_n_u_groups __pyx_string_tab[580] -#define __pyx_n_u_help __pyx_string_tab[581] -#define __pyx_n_u_high __pyx_string_tab[582] -#define __pyx_n_u_high_data __pyx_string_tab[583] -#define __pyx_n_u_holder __pyx_string_tab[584] -#define __pyx_n_u_i __pyx_string_tab[585] -#define __pyx_n_u_id __pyx_string_tab[586] -#define __pyx_n_u_idx __pyx_string_tab[587] -#define __pyx_n_u_import_error __pyx_string_tab[588] -#define __pyx_n_u_in __pyx_string_tab[589] -#define __pyx_n_u_index __pyx_string_tab[590] -#define __pyx_n_u_info __pyx_string_tab[591] -#define __pyx_n_u_init __pyx_string_tab[592] -#define __pyx_n_u_input_arrays __pyx_string_tab[593] -#define __pyx_n_u_input_name __pyx_string_tab[594] -#define __pyx_n_u_input_names __pyx_string_tab[595] -#define __pyx_n_u_input_price_series_names __pyx_string_tab[596] -#define __pyx_n_u_input_price_series_names_2 __pyx_string_tab[597] -#define __pyx_n_u_integer __pyx_string_tab[598] -#define __pyx_n_u_is_coroutine __pyx_string_tab[599] -#define __pyx_n_u_is_empty __pyx_string_tab[600] -#define __pyx_n_u_items __pyx_string_tab[601] -#define __pyx_n_u_key __pyx_string_tab[602] -#define __pyx_n_u_keys __pyx_string_tab[603] -#define __pyx_n_u_kwargs __pyx_string_tab[604] -#define __pyx_n_u_length __pyx_string_tab[605] -#define __pyx_n_u_local __pyx_string_tab[606] -#define __pyx_n_u_local_2 __pyx_string_tab[607] -#define __pyx_n_u_log __pyx_string_tab[608] -#define __pyx_n_u_lookback __pyx_string_tab[609] -#define __pyx_n_u_lookup __pyx_string_tab[610] -#define __pyx_n_u_low __pyx_string_tab[611] -#define __pyx_n_u_low_data __pyx_string_tab[612] -#define __pyx_n_u_lower __pyx_string_tab[613] -#define __pyx_n_u_main __pyx_string_tab[614] -#define __pyx_n_u_math __pyx_string_tab[615] -#define __pyx_n_u_matype __pyx_string_tab[616] -#define __pyx_n_u_max __pyx_string_tab[617] -#define __pyx_n_u_max_int __pyx_string_tab[618] -#define __pyx_n_u_maximum __pyx_string_tab[619] -#define __pyx_n_u_maxperiod __pyx_string_tab[620] -#define __pyx_n_u_metaclass __pyx_string_tab[621] -#define __pyx_n_u_min __pyx_string_tab[622] -#define __pyx_n_u_min_int __pyx_string_tab[623] -#define __pyx_n_u_minperiod __pyx_string_tab[624] -#define __pyx_n_u_missing __pyx_string_tab[625] -#define __pyx_n_u_missing_keys __pyx_string_tab[626] -#define __pyx_n_u_module __pyx_string_tab[627] -#define __pyx_n_u_mro_entries __pyx_string_tab[628] -#define __pyx_n_u_msg __pyx_string_tab[629] -#define __pyx_n_u_n __pyx_string_tab[630] -#define __pyx_n_u_name __pyx_string_tab[631] -#define __pyx_n_u_name_2 __pyx_string_tab[632] -#define __pyx_n_u_nan __pyx_string_tab[633] -#define __pyx_n_u_nbdev __pyx_string_tab[634] -#define __pyx_n_u_nbdevdn __pyx_string_tab[635] -#define __pyx_n_u_nbdevup __pyx_string_tab[636] -#define __pyx_n_u_no_existing_input_arrays __pyx_string_tab[637] -#define __pyx_n_u_num_inputs __pyx_string_tab[638] -#define __pyx_n_u_num_opt_inputs __pyx_string_tab[639] -#define __pyx_n_u_num_outputs __pyx_string_tab[640] -#define __pyx_n_u_numpy __pyx_string_tab[641] -#define __pyx_n_u_object __pyx_string_tab[642] -#define __pyx_n_u_offsetonreverse __pyx_string_tab[643] -#define __pyx_n_u_open __pyx_string_tab[644] -#define __pyx_n_u_openInterest __pyx_string_tab[645] -#define __pyx_n_u_open_data __pyx_string_tab[646] -#define __pyx_n_u_optIn __pyx_string_tab[647] -#define __pyx_n_u_opt_input __pyx_string_tab[648] -#define __pyx_n_u_opt_input_values __pyx_string_tab[649] -#define __pyx_n_u_opt_inputs __pyx_string_tab[650] -#define __pyx_n_u_ordereddict __pyx_string_tab[651] -#define __pyx_n_u_out __pyx_string_tab[652] -#define __pyx_n_u_outaroondown __pyx_string_tab[653] -#define __pyx_n_u_outaroonup __pyx_string_tab[654] -#define __pyx_n_u_outbegidx __pyx_string_tab[655] -#define __pyx_n_u_outfama __pyx_string_tab[656] -#define __pyx_n_u_outfastd __pyx_string_tab[657] -#define __pyx_n_u_outfastk __pyx_string_tab[658] -#define __pyx_n_u_outinphase __pyx_string_tab[659] -#define __pyx_n_u_outinteger __pyx_string_tab[660] -#define __pyx_n_u_outinteger_data __pyx_string_tab[661] -#define __pyx_n_u_outleadsine __pyx_string_tab[662] -#define __pyx_n_u_outmacd __pyx_string_tab[663] -#define __pyx_n_u_outmacdhist __pyx_string_tab[664] -#define __pyx_n_u_outmacdsignal __pyx_string_tab[665] -#define __pyx_n_u_outmama __pyx_string_tab[666] -#define __pyx_n_u_outmax __pyx_string_tab[667] -#define __pyx_n_u_outmaxidx __pyx_string_tab[668] -#define __pyx_n_u_outmaxidx_data __pyx_string_tab[669] -#define __pyx_n_u_outmin __pyx_string_tab[670] -#define __pyx_n_u_outminidx __pyx_string_tab[671] -#define __pyx_n_u_outminidx_data __pyx_string_tab[672] -#define __pyx_n_u_outnbelement __pyx_string_tab[673] -#define __pyx_n_u_output __pyx_string_tab[674] -#define __pyx_n_u_output_flags __pyx_string_tab[675] -#define __pyx_n_u_output_name __pyx_string_tab[676] -#define __pyx_n_u_output_names __pyx_string_tab[677] -#define __pyx_n_u_outputs __pyx_string_tab[678] -#define __pyx_n_u_outputs_valid __pyx_string_tab[679] -#define __pyx_n_u_outquadrature __pyx_string_tab[680] -#define __pyx_n_u_outreal __pyx_string_tab[681] -#define __pyx_n_u_outreallowerband __pyx_string_tab[682] -#define __pyx_n_u_outrealmiddleband __pyx_string_tab[683] -#define __pyx_n_u_outrealupperband __pyx_string_tab[684] -#define __pyx_n_u_outsine __pyx_string_tab[685] -#define __pyx_n_u_outslowd __pyx_string_tab[686] -#define __pyx_n_u_outslowk __pyx_string_tab[687] -#define __pyx_n_u_pandas __pyx_string_tab[688] -#define __pyx_n_u_param __pyx_string_tab[689] -#define __pyx_n_u_param_name __pyx_string_tab[690] -#define __pyx_n_u_parameters __pyx_string_tab[691] -#define __pyx_n_u_params __pyx_string_tab[692] -#define __pyx_n_u_penetration __pyx_string_tab[693] -#define __pyx_n_u_period __pyx_string_tab[694] -#define __pyx_n_u_periods __pyx_string_tab[695] -#define __pyx_n_u_periods_data __pyx_string_tab[696] -#define __pyx_n_u_polars __pyx_string_tab[697] -#define __pyx_n_u_pop __pyx_string_tab[698] -#define __pyx_n_u_prepare __pyx_string_tab[699] -#define __pyx_n_u_price __pyx_string_tab[700] -#define __pyx_n_u_price0 __pyx_string_tab[701] -#define __pyx_n_u_price1 __pyx_string_tab[702] -#define __pyx_n_u_price_series __pyx_string_tab[703] -#define __pyx_n_u_price_series_name_values __pyx_string_tab[704] -#define __pyx_n_u_prices __pyx_string_tab[705] -#define __pyx_n_u_property __pyx_string_tab[706] -#define __pyx_n_u_qualname __pyx_string_tab[707] -#define __pyx_n_u_rangetype __pyx_string_tab[708] -#define __pyx_n_u_real __pyx_string_tab[709] -#define __pyx_n_u_real0 __pyx_string_tab[710] -#define __pyx_n_u_real0_data __pyx_string_tab[711] -#define __pyx_n_u_real1 __pyx_string_tab[712] -#define __pyx_n_u_real1_data __pyx_string_tab[713] -#define __pyx_n_u_real_data __pyx_string_tab[714] -#define __pyx_n_u_replace __pyx_string_tab[715] -#define __pyx_n_u_repr __pyx_string_tab[716] -#define __pyx_n_u_results __pyx_string_tab[717] -#define __pyx_n_u_ret __pyx_string_tab[718] -#define __pyx_n_u_retCode __pyx_string_tab[719] -#define __pyx_n_u_ret_code __pyx_string_tab[720] -#define __pyx_n_u_run __pyx_string_tab[721] -#define __pyx_n_u_s __pyx_string_tab[722] -#define __pyx_n_u_schema __pyx_string_tab[723] -#define __pyx_n_u_self __pyx_string_tab[724] -#define __pyx_n_u_series __pyx_string_tab[725] -#define __pyx_n_u_set_function_args __pyx_string_tab[726] -#define __pyx_n_u_set_input_arrays __pyx_string_tab[727] -#define __pyx_n_u_set_input_names __pyx_string_tab[728] -#define __pyx_n_u_set_name __pyx_string_tab[729] -#define __pyx_n_u_set_parameters __pyx_string_tab[730] -#define __pyx_n_u_setdefault __pyx_string_tab[731] -#define __pyx_n_u_settingtype __pyx_string_tab[732] -#define __pyx_n_u_signalmatype __pyx_string_tab[733] -#define __pyx_n_u_signalperiod __pyx_string_tab[734] -#define __pyx_n_u_skip_first __pyx_string_tab[735] -#define __pyx_n_u_slowd_matype __pyx_string_tab[736] -#define __pyx_n_u_slowd_period __pyx_string_tab[737] -#define __pyx_n_u_slowk_matype __pyx_string_tab[738] -#define __pyx_n_u_slowk_period __pyx_string_tab[739] -#define __pyx_n_u_slowlimit __pyx_string_tab[740] -#define __pyx_n_u_slowmatype __pyx_string_tab[741] -#define __pyx_n_u_slowperiod __pyx_string_tab[742] -#define __pyx_n_u_startvalue __pyx_string_tab[743] -#define __pyx_n_u_str __pyx_string_tab[744] -#define __pyx_n_u_str2bytes __pyx_string_tab[745] -#define __pyx_n_u_stream_ACCBANDS __pyx_string_tab[746] -#define __pyx_n_u_stream_ACOS __pyx_string_tab[747] -#define __pyx_n_u_stream_AD __pyx_string_tab[748] -#define __pyx_n_u_stream_ADD __pyx_string_tab[749] -#define __pyx_n_u_stream_ADOSC __pyx_string_tab[750] -#define __pyx_n_u_stream_ADX __pyx_string_tab[751] -#define __pyx_n_u_stream_ADXR __pyx_string_tab[752] -#define __pyx_n_u_stream_APO __pyx_string_tab[753] -#define __pyx_n_u_stream_AROON __pyx_string_tab[754] -#define __pyx_n_u_stream_AROONOSC __pyx_string_tab[755] -#define __pyx_n_u_stream_ASIN __pyx_string_tab[756] -#define __pyx_n_u_stream_ATAN __pyx_string_tab[757] -#define __pyx_n_u_stream_ATR __pyx_string_tab[758] -#define __pyx_n_u_stream_AVGDEV __pyx_string_tab[759] -#define __pyx_n_u_stream_AVGPRICE __pyx_string_tab[760] -#define __pyx_n_u_stream_BBANDS __pyx_string_tab[761] -#define __pyx_n_u_stream_BETA __pyx_string_tab[762] -#define __pyx_n_u_stream_BOP __pyx_string_tab[763] -#define __pyx_n_u_stream_CCI __pyx_string_tab[764] -#define __pyx_n_u_stream_CDL2CROWS __pyx_string_tab[765] -#define __pyx_n_u_stream_CDL3BLACKCROWS __pyx_string_tab[766] -#define __pyx_n_u_stream_CDL3INSIDE __pyx_string_tab[767] -#define __pyx_n_u_stream_CDL3LINESTRIKE __pyx_string_tab[768] -#define __pyx_n_u_stream_CDL3OUTSIDE __pyx_string_tab[769] -#define __pyx_n_u_stream_CDL3STARSINSOUTH __pyx_string_tab[770] -#define __pyx_n_u_stream_CDL3WHITESOLDIERS __pyx_string_tab[771] -#define __pyx_n_u_stream_CDLABANDONEDBABY __pyx_string_tab[772] -#define __pyx_n_u_stream_CDLADVANCEBLOCK __pyx_string_tab[773] -#define __pyx_n_u_stream_CDLBELTHOLD __pyx_string_tab[774] -#define __pyx_n_u_stream_CDLBREAKAWAY __pyx_string_tab[775] -#define __pyx_n_u_stream_CDLCLOSINGMARUBOZU __pyx_string_tab[776] -#define __pyx_n_u_stream_CDLCONCEALBABYSWALL __pyx_string_tab[777] -#define __pyx_n_u_stream_CDLCOUNTERATTACK __pyx_string_tab[778] -#define __pyx_n_u_stream_CDLDARKCLOUDCOVER __pyx_string_tab[779] -#define __pyx_n_u_stream_CDLDOJI __pyx_string_tab[780] -#define __pyx_n_u_stream_CDLDOJISTAR __pyx_string_tab[781] -#define __pyx_n_u_stream_CDLDRAGONFLYDOJI __pyx_string_tab[782] -#define __pyx_n_u_stream_CDLENGULFING __pyx_string_tab[783] -#define __pyx_n_u_stream_CDLEVENINGDOJISTAR __pyx_string_tab[784] -#define __pyx_n_u_stream_CDLEVENINGSTAR __pyx_string_tab[785] -#define __pyx_n_u_stream_CDLGAPSIDESIDEWHITE __pyx_string_tab[786] -#define __pyx_n_u_stream_CDLGRAVESTONEDOJI __pyx_string_tab[787] -#define __pyx_n_u_stream_CDLHAMMER __pyx_string_tab[788] -#define __pyx_n_u_stream_CDLHANGINGMAN __pyx_string_tab[789] -#define __pyx_n_u_stream_CDLHARAMI __pyx_string_tab[790] -#define __pyx_n_u_stream_CDLHARAMICROSS __pyx_string_tab[791] -#define __pyx_n_u_stream_CDLHIGHWAVE __pyx_string_tab[792] -#define __pyx_n_u_stream_CDLHIKKAKE __pyx_string_tab[793] -#define __pyx_n_u_stream_CDLHIKKAKEMOD __pyx_string_tab[794] -#define __pyx_n_u_stream_CDLHOMINGPIGEON __pyx_string_tab[795] -#define __pyx_n_u_stream_CDLIDENTICAL3CROWS __pyx_string_tab[796] -#define __pyx_n_u_stream_CDLINNECK __pyx_string_tab[797] -#define __pyx_n_u_stream_CDLINVERTEDHAMMER __pyx_string_tab[798] -#define __pyx_n_u_stream_CDLKICKING __pyx_string_tab[799] -#define __pyx_n_u_stream_CDLKICKINGBYLENGTH __pyx_string_tab[800] -#define __pyx_n_u_stream_CDLLADDERBOTTOM __pyx_string_tab[801] -#define __pyx_n_u_stream_CDLLONGLEGGEDDOJI __pyx_string_tab[802] -#define __pyx_n_u_stream_CDLLONGLINE __pyx_string_tab[803] -#define __pyx_n_u_stream_CDLMARUBOZU __pyx_string_tab[804] -#define __pyx_n_u_stream_CDLMATCHINGLOW __pyx_string_tab[805] -#define __pyx_n_u_stream_CDLMATHOLD __pyx_string_tab[806] -#define __pyx_n_u_stream_CDLMORNINGDOJISTAR __pyx_string_tab[807] -#define __pyx_n_u_stream_CDLMORNINGSTAR __pyx_string_tab[808] -#define __pyx_n_u_stream_CDLONNECK __pyx_string_tab[809] -#define __pyx_n_u_stream_CDLPIERCING __pyx_string_tab[810] -#define __pyx_n_u_stream_CDLRICKSHAWMAN __pyx_string_tab[811] -#define __pyx_n_u_stream_CDLRISEFALL3METHODS __pyx_string_tab[812] -#define __pyx_n_u_stream_CDLSEPARATINGLINES __pyx_string_tab[813] -#define __pyx_n_u_stream_CDLSHOOTINGSTAR __pyx_string_tab[814] -#define __pyx_n_u_stream_CDLSHORTLINE __pyx_string_tab[815] -#define __pyx_n_u_stream_CDLSPINNINGTOP __pyx_string_tab[816] -#define __pyx_n_u_stream_CDLSTALLEDPATTERN __pyx_string_tab[817] -#define __pyx_n_u_stream_CDLSTICKSANDWICH __pyx_string_tab[818] -#define __pyx_n_u_stream_CDLTAKURI __pyx_string_tab[819] -#define __pyx_n_u_stream_CDLTASUKIGAP __pyx_string_tab[820] -#define __pyx_n_u_stream_CDLTHRUSTING __pyx_string_tab[821] -#define __pyx_n_u_stream_CDLTRISTAR __pyx_string_tab[822] -#define __pyx_n_u_stream_CDLUNIQUE3RIVER __pyx_string_tab[823] -#define __pyx_n_u_stream_CDLUPSIDEGAP2CROWS __pyx_string_tab[824] -#define __pyx_n_u_stream_CDLXSIDEGAP3METHODS __pyx_string_tab[825] -#define __pyx_n_u_stream_CEIL __pyx_string_tab[826] -#define __pyx_n_u_stream_CMO __pyx_string_tab[827] -#define __pyx_n_u_stream_CORREL __pyx_string_tab[828] -#define __pyx_n_u_stream_COS __pyx_string_tab[829] -#define __pyx_n_u_stream_COSH __pyx_string_tab[830] -#define __pyx_n_u_stream_DEMA __pyx_string_tab[831] -#define __pyx_n_u_stream_DIV __pyx_string_tab[832] -#define __pyx_n_u_stream_DX __pyx_string_tab[833] -#define __pyx_n_u_stream_EMA __pyx_string_tab[834] -#define __pyx_n_u_stream_EXP __pyx_string_tab[835] -#define __pyx_n_u_stream_FLOOR __pyx_string_tab[836] -#define __pyx_n_u_stream_HT_DCPERIOD __pyx_string_tab[837] -#define __pyx_n_u_stream_HT_DCPHASE __pyx_string_tab[838] -#define __pyx_n_u_stream_HT_PHASOR __pyx_string_tab[839] -#define __pyx_n_u_stream_HT_SINE __pyx_string_tab[840] -#define __pyx_n_u_stream_HT_TRENDLINE __pyx_string_tab[841] -#define __pyx_n_u_stream_HT_TRENDMODE __pyx_string_tab[842] -#define __pyx_n_u_stream_IMI __pyx_string_tab[843] -#define __pyx_n_u_stream_KAMA __pyx_string_tab[844] -#define __pyx_n_u_stream_LINEARREG __pyx_string_tab[845] -#define __pyx_n_u_stream_LINEARREG_ANGLE __pyx_string_tab[846] -#define __pyx_n_u_stream_LINEARREG_INTERCEPT __pyx_string_tab[847] -#define __pyx_n_u_stream_LINEARREG_SLOPE __pyx_string_tab[848] -#define __pyx_n_u_stream_LN __pyx_string_tab[849] -#define __pyx_n_u_stream_LOG10 __pyx_string_tab[850] -#define __pyx_n_u_stream_MA __pyx_string_tab[851] -#define __pyx_n_u_stream_MACD __pyx_string_tab[852] -#define __pyx_n_u_stream_MACDEXT __pyx_string_tab[853] -#define __pyx_n_u_stream_MACDFIX __pyx_string_tab[854] -#define __pyx_n_u_stream_MAMA __pyx_string_tab[855] -#define __pyx_n_u_stream_MAVP __pyx_string_tab[856] -#define __pyx_n_u_stream_MAX __pyx_string_tab[857] -#define __pyx_n_u_stream_MAXINDEX __pyx_string_tab[858] -#define __pyx_n_u_stream_MEDPRICE __pyx_string_tab[859] -#define __pyx_n_u_stream_MFI __pyx_string_tab[860] -#define __pyx_n_u_stream_MIDPOINT __pyx_string_tab[861] -#define __pyx_n_u_stream_MIDPRICE __pyx_string_tab[862] -#define __pyx_n_u_stream_MIN __pyx_string_tab[863] -#define __pyx_n_u_stream_MININDEX __pyx_string_tab[864] -#define __pyx_n_u_stream_MINMAX __pyx_string_tab[865] -#define __pyx_n_u_stream_MINMAXINDEX __pyx_string_tab[866] -#define __pyx_n_u_stream_MINUS_DI __pyx_string_tab[867] -#define __pyx_n_u_stream_MINUS_DM __pyx_string_tab[868] -#define __pyx_n_u_stream_MOM __pyx_string_tab[869] -#define __pyx_n_u_stream_MULT __pyx_string_tab[870] -#define __pyx_n_u_stream_NATR __pyx_string_tab[871] -#define __pyx_n_u_stream_OBV __pyx_string_tab[872] -#define __pyx_n_u_stream_PLUS_DI __pyx_string_tab[873] -#define __pyx_n_u_stream_PLUS_DM __pyx_string_tab[874] -#define __pyx_n_u_stream_PPO __pyx_string_tab[875] -#define __pyx_n_u_stream_ROC __pyx_string_tab[876] -#define __pyx_n_u_stream_ROCP __pyx_string_tab[877] -#define __pyx_n_u_stream_ROCR __pyx_string_tab[878] -#define __pyx_n_u_stream_ROCR100 __pyx_string_tab[879] -#define __pyx_n_u_stream_RSI __pyx_string_tab[880] -#define __pyx_n_u_stream_SAR __pyx_string_tab[881] -#define __pyx_n_u_stream_SAREXT __pyx_string_tab[882] -#define __pyx_n_u_stream_SIN __pyx_string_tab[883] -#define __pyx_n_u_stream_SINH __pyx_string_tab[884] -#define __pyx_n_u_stream_SMA __pyx_string_tab[885] -#define __pyx_n_u_stream_SQRT __pyx_string_tab[886] -#define __pyx_n_u_stream_STDDEV __pyx_string_tab[887] -#define __pyx_n_u_stream_STOCH __pyx_string_tab[888] -#define __pyx_n_u_stream_STOCHF __pyx_string_tab[889] -#define __pyx_n_u_stream_STOCHRSI __pyx_string_tab[890] -#define __pyx_n_u_stream_SUB __pyx_string_tab[891] -#define __pyx_n_u_stream_SUM __pyx_string_tab[892] -#define __pyx_n_u_stream_T3 __pyx_string_tab[893] -#define __pyx_n_u_stream_TAN __pyx_string_tab[894] -#define __pyx_n_u_stream_TANH __pyx_string_tab[895] -#define __pyx_n_u_stream_TEMA __pyx_string_tab[896] -#define __pyx_n_u_stream_TRANGE __pyx_string_tab[897] -#define __pyx_n_u_stream_TRIMA __pyx_string_tab[898] -#define __pyx_n_u_stream_TRIX __pyx_string_tab[899] -#define __pyx_n_u_stream_TSF __pyx_string_tab[900] -#define __pyx_n_u_stream_TYPPRICE __pyx_string_tab[901] -#define __pyx_n_u_stream_ULTOSC __pyx_string_tab[902] -#define __pyx_n_u_stream_VAR __pyx_string_tab[903] -#define __pyx_n_u_stream_WCLPRICE __pyx_string_tab[904] -#define __pyx_n_u_stream_WILLR __pyx_string_tab[905] -#define __pyx_n_u_stream_WMA __pyx_string_tab[906] -#define __pyx_n_u_sys __pyx_string_tab[907] -#define __pyx_n_u_ta_check_success __pyx_string_tab[908] -#define __pyx_n_u_ta_func_unst_ids __pyx_string_tab[909] -#define __pyx_n_u_ta_getFuncInfo __pyx_string_tab[910] -#define __pyx_n_u_ta_getFuncTable __pyx_string_tab[911] -#define __pyx_n_u_ta_getGroupTable __pyx_string_tab[912] -#define __pyx_n_u_ta_getInputParameterInfo __pyx_string_tab[913] -#define __pyx_n_u_ta_getOptInputParameterInfo __pyx_string_tab[914] -#define __pyx_n_u_ta_getOutputParameterInfo __pyx_string_tab[915] -#define __pyx_n_u_ta_get_compatibility __pyx_string_tab[916] -#define __pyx_n_u_ta_get_unstable_period __pyx_string_tab[917] -#define __pyx_n_u_ta_initialize __pyx_string_tab[918] -#define __pyx_n_u_ta_restore_candle_default_setti __pyx_string_tab[919] -#define __pyx_n_u_ta_set_candle_settings __pyx_string_tab[920] -#define __pyx_n_u_ta_set_compatibility __pyx_string_tab[921] -#define __pyx_n_u_ta_set_unstable_period __pyx_string_tab[922] -#define __pyx_n_u_ta_shutdown __pyx_string_tab[923] -#define __pyx_n_u_ta_version __pyx_string_tab[924] -#define __pyx_n_u_table __pyx_string_tab[925] -#define __pyx_n_u_talib__ta_lib __pyx_string_tab[926] -#define __pyx_n_u_test __pyx_string_tab[927] -#define __pyx_n_u_threading __pyx_string_tab[928] -#define __pyx_n_u_timeStamp __pyx_string_tab[929] -#define __pyx_n_u_timeperiod __pyx_string_tab[930] -#define __pyx_n_u_timeperiod1 __pyx_string_tab[931] -#define __pyx_n_u_timeperiod2 __pyx_string_tab[932] -#define __pyx_n_u_timeperiod3 __pyx_string_tab[933] -#define __pyx_n_u_to_numpy __pyx_string_tab[934] -#define __pyx_n_u_type __pyx_string_tab[935] -#define __pyx_n_u_type_2 __pyx_string_tab[936] -#define __pyx_n_u_unicode __pyx_string_tab[937] -#define __pyx_n_u_update __pyx_string_tab[938] -#define __pyx_n_u_update_info __pyx_string_tab[939] -#define __pyx_n_u_upper __pyx_string_tab[940] -#define __pyx_n_u_value __pyx_string_tab[941] -#define __pyx_n_u_value_range __pyx_string_tab[942] -#define __pyx_n_u_values __pyx_string_tab[943] -#define __pyx_n_u_version __pyx_string_tab[944] -#define __pyx_n_u_vfactor __pyx_string_tab[945] -#define __pyx_n_u_volume __pyx_string_tab[946] -#define __pyx_n_u_volume_data __pyx_string_tab[947] -#define __pyx_kp_b_iso88591_01_aq_Q_T_q_RvXRt6_4_S_aammnn_Q __pyx_string_tab[948] -#define __pyx_kp_b_iso88591_01_aq_Q_T_q_a_RvXRt6_4_S_aammnn __pyx_string_tab[949] -#define __pyx_kp_b_iso88591_01_aq_T_q_8_T_U_7_A_we_7r_q_Bd __pyx_string_tab[950] -#define __pyx_kp_b_iso88591_0HHbb_0_aq_Q_T_q_q_q_RvXRt6_4_S __pyx_string_tab[951] -#define __pyx_kp_b_iso88591_0_aq_Q_T_q_a_A_BfHBd_lRaabbnnoo __pyx_string_tab[952] -#define __pyx_kp_b_iso88591_0_aq_Q_T_q_a_BfHBd_lR___llmm_Qn __pyx_string_tab[953] -#define __pyx_kp_b_iso88591_12_aq_Q_T_q_a_b_hb_F_D_Taabbnno __pyx_string_tab[954] -#define __pyx_kp_b_iso88591_1_1 __pyx_string_tab[955] -#define __pyx_kp_b_iso88591_1_a_OuTUUV_Q_31_9AT_4q_1HF_wc_d __pyx_string_tab[956] -#define __pyx_kp_b_iso88591_1_aq_T_q_8_T_U_7_A_we_M_q_r_Yk __pyx_string_tab[957] -#define __pyx_kp_b_iso88591_1_aq_T_q_8_T_U_7_A_we_M_q_r_Yk_2 __pyx_string_tab[958] -#define __pyx_kp_b_iso88591_2_1_Q_9 __pyx_string_tab[959] -#define __pyx_kp_b_iso88591_314DAQ_Q_a_4q_a_Qd_c_a_Qd_s_4q __pyx_string_tab[960] -#define __pyx_kp_b_iso88591_34_aq_Q_T_q_fHBd_Vccddppq_r_A_A __pyx_string_tab[961] -#define __pyx_kp_b_iso88591_45_aq_T_q_8_T_U_7_A_we_2Q_q_i_f __pyx_string_tab[962] -#define __pyx_kp_b_iso88591_5_t_Qm1_d_1_c_d_3a_Q_c_d_3a_Q_u __pyx_string_tab[963] -#define __pyx_kp_b_iso88591_78_aq_Q_T_q_a_BfHBd_lZgghhttu_v __pyx_string_tab[964] -#define __pyx_kp_b_iso88591_A2_A_QnA_1_t_6a_gQ_d_Q_d_1_q_s_A __pyx_string_tab[965] -#define __pyx_kp_b_iso88591_AA_uuv0_aq_T_q_8_T_U_7_A_we_0_o __pyx_string_tab[966] -#define __pyx_kp_b_iso88591_A_A_1_N_q_5_A_z_HA_G1A_q_q __pyx_string_tab[967] -#define __pyx_kp_b_iso88591_A_A_2_k_Qa_e_e1_2S_AQ_U_t1A_q_4 __pyx_string_tab[968] -#define __pyx_kp_b_iso88591_A_A_4_B_q_A_U_q_we1_axq_wgQa_Q_a __pyx_string_tab[969] -#define __pyx_kp_b_iso88591_A_A_4uA_e87_4z_q_aq_gU_5_q_E_a_s __pyx_string_tab[970] -#define __pyx_kp_b_iso88591_A_A_4wawa_1_Kq_Q_V1E_d_1_0_Ya_T __pyx_string_tab[971] -#define __pyx_kp_b_iso88591_A_A_6_6_6_7_7_81_7_7_5 __pyx_string_tab[972] -#define __pyx_kp_b_iso88591_A_A_AQ_6_A_E_A_q __pyx_string_tab[973] -#define __pyx_kp_b_iso88591_A_A_L_6_Qk_A_a_QnA_a __pyx_string_tab[974] -#define __pyx_kp_b_iso88591_A_A_a_G1_t3e1_aq_4_q_Q_AT_V1A_S __pyx_string_tab[975] -#define __pyx_kp_b_iso88591_A_A_at1_C_IQe1_D_aq_E_AZq_vV_2_V __pyx_string_tab[976] -#define __pyx_kp_b_iso88591_A_A_gQ_5_q_5_V1_5_U __pyx_string_tab[977] -#define __pyx_kp_b_iso88591_A_A_k_M_a_q_T_7q_q __pyx_string_tab[978] -#define __pyx_kp_b_iso88591_A_A_k_N_q_q_e_q_1A_q __pyx_string_tab[979] -#define __pyx_kp_b_iso88591_A_B_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d __pyx_string_tab[980] -#define __pyx_kp_b_iso88591_A_HKq_1A_6_5Q_A_7_4A_A_QgQ_7_1_A __pyx_string_tab[981] -#define __pyx_kp_b_iso88591_A_Jm6_M_Q_Jiq_A_O9F_b_O1 __pyx_string_tab[982] -#define __pyx_kp_b_iso88591_A_Qd __pyx_string_tab[983] -#define __pyx_kp_b_iso88591_A_Y_Y_Z_aq_Q_Qa_y_1_Kq_q_6_6_gQ __pyx_string_tab[984] -#define __pyx_kp_b_iso88591_A_aq_Kq_6_8_T_5_U_7_A_we_2Q_q_i __pyx_string_tab[985] -#define __pyx_kp_b_iso88591_A_aq_Qa_6_8_T_3a_U_7_A_we_Rq_AX __pyx_string_tab[986] -#define __pyx_kp_b_iso88591_A_aq_T_q_8_T_U_7_A_we_2_q_i_fAY __pyx_string_tab[987] -#define __pyx_kp_b_iso88591_A_d_q_4z_q_aq_q __pyx_string_tab[988] -#define __pyx_kp_b_iso88591_A_q __pyx_string_tab[989] -#define __pyx_kp_b_iso88591_A_q_q __pyx_string_tab[990] -#define __pyx_kp_b_iso88591_A_t81A __pyx_string_tab[991] -#define __pyx_kp_b_iso88591_A_t85 __pyx_string_tab[992] -#define __pyx_kp_b_iso88591_A_t85_Q __pyx_string_tab[993] -#define __pyx_kp_b_iso88591_A_t85_Q_2 __pyx_string_tab[994] -#define __pyx_kp_b_iso88591_A_uAS __pyx_string_tab[995] -#define __pyx_kp_b_iso88591_A_uBd __pyx_string_tab[996] -#define __pyx_kp_b_iso88591_A_wat81 __pyx_string_tab[997] -#define __pyx_kp_b_iso88591_A_z_____b_b_G_G_h_h_i_4_aq_Qa_6 __pyx_string_tab[998] -#define __pyx_kp_b_iso88591_BC_Kq_Kq_7_8_U_E_U_7_A_we_Ba_q __pyx_string_tab[999] -#define __pyx_kp_b_iso88591_BC_aq_Qa_6_8_T_3a_U_7_A_we_r_q __pyx_string_tab[1000] -#define __pyx_kp_b_iso88591_B_aq_Q_T_q_a_r_xr_V82T_Zccddppq __pyx_string_tab[1001] -#define __pyx_kp_b_iso88591_B_aq_Q_T_q_a_r_xr_V82T_Zddeeqqr __pyx_string_tab[1002] -#define __pyx_kp_b_iso88591_C1_aq_Q_T_q_a_fHBd_m_ccddppq_r __pyx_string_tab[1003] -#define __pyx_kp_b_iso88591_CC_aq_Q_T_q_a_fHBd_m_hhqqrr_O_O __pyx_string_tab[1004] -#define __pyx_kp_b_iso88591_CD_aq_Qa_6_8_T_3a_U_7_A_we_0_q __pyx_string_tab[1005] -#define __pyx_kp_b_iso88591_CZZqqr_aq_k_6_8_T_7_U_7_A_we_Bl __pyx_string_tab[1006] -#define __pyx_kp_b_iso88591_C_D_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d __pyx_string_tab[1007] -#define __pyx_kp_b_iso88591_DD_2_aq_Q_T_q_a_A_6_4vXRt_iixxy __pyx_string_tab[1008] -#define __pyx_kp_b_iso88591_DE_Kq_Kq_7_8_U_E_U_7_A_we_b_q_2 __pyx_string_tab[1009] -#define __pyx_kp_b_iso88591_D_E_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA __pyx_string_tab[1010] -#define __pyx_kp_b_iso88591_D_E_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d __pyx_string_tab[1011] -#define __pyx_kp_b_iso88591_EQ_aq_Q_T_q_a_a_6_4vXRt_gghhttu __pyx_string_tab[1012] -#define __pyx_kp_b_iso88591_E_F_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d __pyx_string_tab[1013] -#define __pyx_kp_b_iso88591_E_a_aq_Q_Qa_y_1_6_a_fHBd_kYhhrr __pyx_string_tab[1014] -#define __pyx_kp_b_iso88591_FF_ttu4_aq_Q_T_q_q_q_2V82T_xr_Q __pyx_string_tab[1015] -#define __pyx_kp_b_iso88591_Fa_aq_Q_T_q_a_2V82T_xr_Q_ffggss __pyx_string_tab[1016] -#define __pyx_kp_b_iso88591_GGZZr_s_F_F_a_8_aq_Q_T_q_a_A_Bf __pyx_string_tab[1017] -#define __pyx_kp_b_iso88591_GH_aq_Q_Kq_q_6_a_fHBd_m_hhiiuuv __pyx_string_tab[1018] -#define __pyx_kp_b_iso88591_GH_aq_Q_Qa_y_1_6_1_F_D_hb_LP_hh __pyx_string_tab[1019] -#define __pyx_kp_b_iso88591_H_I_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA __pyx_string_tab[1020] -#define __pyx_kp_b_iso88591_Hb_c_B_B_f_f_F_F_i_i_N_N_o_o_p __pyx_string_tab[1021] -#define __pyx_kp_b_iso88591_IJ_Kq_q_Kq_q_7_a_6_4vXRt_P_jjkk __pyx_string_tab[1022] -#define __pyx_kp_b_iso88591_IJ_aq_Q_Qa_y_1_6_a_BfHBd_lR_jjk __pyx_string_tab[1023] -#define __pyx_kp_b_iso88591_JK_aq_Q_Qa_y_1_6_a_RvXRt6_4_S_k __pyx_string_tab[1024] -#define __pyx_kp_b_iso88591_J_K_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA __pyx_string_tab[1025] -#define __pyx_kp_b_iso88591_Jaaxxy_aq_Q_k_9G1_6_a_6_4vXRt_j __pyx_string_tab[1026] -#define __pyx_kp_b_iso88591_KL_Kq_q_Kq_q_7_a_2V82T_xr_R__ll __pyx_string_tab[1027] -#define __pyx_kp_b_iso88591_K_L_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA __pyx_string_tab[1028] -#define __pyx_kp_b_iso88591_Kq_Kq_7_8_U_E_U_7_A_we_1_q_i_vQ __pyx_string_tab[1029] -#define __pyx_kp_b_iso88591_Kq_Kq_7_8_U_E_U_7_A_we_A_q_4y_5 __pyx_string_tab[1030] -#define __pyx_kp_b_iso88591_Kq_q_Kq_q_7_a_6_4vXRt_P_jjkkzz __pyx_string_tab[1031] -#define __pyx_kp_b_iso88591_Kq_q_Kq_q_7_a_fHBd_iijjyyzz_Qj __pyx_string_tab[1032] -#define __pyx_kp_b_iso88591_L_M_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA __pyx_string_tab[1033] -#define __pyx_kp_b_iso88591_N_1_A_t1 __pyx_string_tab[1034] -#define __pyx_kp_b_iso88591_Q_AQQVVWWX_Q_5Q_9AT_4q_1JfA_Cq __pyx_string_tab[1035] -#define __pyx_kp_b_iso88591_Q_A_1_G9JfA_t_1G1_q_1_a_U_4q __pyx_string_tab[1036] -#define __pyx_kp_b_iso88591_Q_B_1A_Q_V1E_gQfAU_Q_1 __pyx_string_tab[1037] -#define __pyx_kp_b_iso88591_Q_NeSTTU_Q_2_9AT_4q_1G6_wc_t81H __pyx_string_tab[1038] -#define __pyx_kp_b_iso88591_Q_V1E_q_WAQ_Q_aq_1 __pyx_string_tab[1039] -#define __pyx_kp_b_iso88591_Q_q __pyx_string_tab[1040] -#define __pyx_kp_b_iso88591_Qa_Qa_1 __pyx_string_tab[1041] -#define __pyx_kp_b_iso88591_Qa_q_A_Q_a __pyx_string_tab[1042] -#define __pyx_kp_b_iso88591_SSkk_Y_Y_Z_8_aq_T_q_8_T_U_7_A_w __pyx_string_tab[1043] -#define __pyx_kp_b_iso88591_TTU_aq_T_q_8_T_U_7_A_we_2_q_q_i __pyx_string_tab[1044] -#define __pyx_kp_b_iso88591_UUV2_aq_T_q_8_T_U_7_A_we_Bm_q_Q __pyx_string_tab[1045] -#define __pyx_kp_b_iso88591_VVmmn4_aq_T_q_8_T_U_7_A_we_b_Zz __pyx_string_tab[1046] -#define __pyx_kp_b_iso88591_YYZ_aq_Qa_6_8_T_3a_U_7_A_we_2_A __pyx_string_tab[1047] -#define __pyx_kp_b_iso88591_YZ_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A __pyx_string_tab[1048] -#define __pyx_kp_b_iso88591_Z_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w __pyx_string_tab[1049] -#define __pyx_kp_b_iso88591_a_QoQ __pyx_string_tab[1050] -#define __pyx_kp_b_iso88591_a_aq_Q_Qa_y_1_Kq_q_6_a_a_r_xr_V __pyx_string_tab[1051] -#define __pyx_kp_b_iso88591_a_aq_T_q_8_T_U_7_A_we_Bl_q_q_4y __pyx_string_tab[1052] -#define __pyx_kp_b_iso88591_ab_aq_Q_Qa_y_1_Kq_q_6_a_a_fHBd __pyx_string_tab[1053] -#define __pyx_kp_b_iso88591_aq_6_8_T_6_U_7_A_we_1_q_i_fAYkQ __pyx_string_tab[1054] -#define __pyx_kp_b_iso88591_aq_Q_6_6_a_fHBd_n_iijjyyzz_Qj_1 __pyx_string_tab[1055] -#define __pyx_kp_b_iso88591_aq_Q_Q __pyx_string_tab[1056] -#define __pyx_kp_b_iso88591_aq_Q_Qa_y_1_6_a_RvXRt6_4_S___kk __pyx_string_tab[1057] -#define __pyx_kp_b_iso88591_aq_Q_Qa_y_1_Kq_q_6_6_gQ_a_fHBd __pyx_string_tab[1058] -#define __pyx_kp_b_iso88591_aq_Q_Qa_y_1_Kq_q_6_6_gQ_a_r_xr __pyx_string_tab[1059] -#define __pyx_kp_b_iso88591_aq_Q_Qa_y_1_Kq_q_6_a_a_2V82T_xr __pyx_string_tab[1060] -#define __pyx_kp_b_iso88591_aq_Q_Qa_y_1_Kq_q_6_a_a_RvXRt6_4 __pyx_string_tab[1061] -#define __pyx_kp_b_iso88591_aq_Q_T_q_6_4vXRt_WXXddeettuuv_Q __pyx_string_tab[1062] -#define __pyx_kp_b_iso88591_aq_Q_T_q_A_b_hb_F_D_TUUaabbqqrr __pyx_string_tab[1063] -#define __pyx_kp_b_iso88591_aq_Q_T_q_Q_Q_2V82T_xr_Q___kkll __pyx_string_tab[1064] -#define __pyx_kp_b_iso88591_aq_Q_T_q_a_2V82T_xr_Q___kkll_Qm __pyx_string_tab[1065] -#define __pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_WXXddeettuuv __pyx_string_tab[1066] -#define __pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_iijjyyzz_Qk __pyx_string_tab[1067] -#define __pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_qP_llmmn_Qk __pyx_string_tab[1068] -#define __pyx_kp_b_iso88591_aq_Q_T_q_a_BfHBd_lRSS___ooppzz __pyx_string_tab[1069] -#define __pyx_kp_b_iso88591_aq_Q_T_q_a_F_D_hb_LPQQ_mmnno_Ql __pyx_string_tab[1070] -#define __pyx_kp_b_iso88591_aq_Q_T_q_a_F_D_hb_LP_jjkkzz_Ql __pyx_string_tab[1071] -#define __pyx_kp_b_iso88591_aq_Q_T_q_a_fHBdR_kkllxxy_z_I_I __pyx_string_tab[1072] -#define __pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_VWWccddssttu_Q __pyx_string_tab[1073] -#define __pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_a_kkllm_Qj_1 __pyx_string_tab[1074] -#define __pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_m_hhiixxyyz_Qj __pyx_string_tab[1075] -#define __pyx_kp_b_iso88591_aq_Q_T_q_a_r_xr_V82T_QlZ_jjkkl __pyx_string_tab[1076] -#define __pyx_kp_b_iso88591_aq_Q_T_q_a_r_xr_V82T_UVVbbccrrs __pyx_string_tab[1077] -#define __pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_2V82 __pyx_string_tab[1078] -#define __pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_6_4v __pyx_string_tab[1079] -#define __pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_BfHB __pyx_string_tab[1080] -#define __pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_BfHB_2 __pyx_string_tab[1081] -#define __pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_F_D __pyx_string_tab[1082] -#define __pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_RvXR __pyx_string_tab[1083] -#define __pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_a_Rv __pyx_string_tab[1084] -#define __pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_a_fH __pyx_string_tab[1085] -#define __pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_b_hb __pyx_string_tab[1086] -#define __pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_b_hb_2 __pyx_string_tab[1087] -#define __pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_fHBd __pyx_string_tab[1088] -#define __pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_fHBd_2 __pyx_string_tab[1089] -#define __pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_r_xr __pyx_string_tab[1090] -#define __pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_r_xr_2 __pyx_string_tab[1091] -#define __pyx_kp_b_iso88591_aq_Qa_6_8_T_3a_U_7_A_we_0_q_Rt9 __pyx_string_tab[1092] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w __pyx_string_tab[1093] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w_2 __pyx_string_tab[1094] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w_3 __pyx_string_tab[1095] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we __pyx_string_tab[1096] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_2 __pyx_string_tab[1097] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_3 __pyx_string_tab[1098] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_4 __pyx_string_tab[1099] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_gQ_8_T_3hjX_eeoouuv __pyx_string_tab[1100] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_0_q_Rt9Kt6 __pyx_string_tab[1101] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_0_q_Rt9Kt6_2 __pyx_string_tab[1102] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_1_1_q_b_I_F __pyx_string_tab[1103] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_1_81_Qha_b __pyx_string_tab[1104] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_1_q_i_fAYa __pyx_string_tab[1105] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm __pyx_string_tab[1106] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2_q_r_Yk_V1 __pyx_string_tab[1107] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_31_q_i_fAYa __pyx_string_tab[1108] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_32Q_axq_axq __pyx_string_tab[1109] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_4A_q_4y_4vQ __pyx_string_tab[1110] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_4A_q_4y_4vQ_2 __pyx_string_tab[1111] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_A_q_4y_4vQi __pyx_string_tab[1112] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Ba_q_4y_4vQ __pyx_string_tab[1113] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Q_q_D_D_ay __pyx_string_tab[1114] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Rq_q_D_D_ay __pyx_string_tab[1115] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_b_axq_axq_2 __pyx_string_tab[1116] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_b_q_2T_T_q __pyx_string_tab[1117] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_q_q_1HA_Bd __pyx_string_tab[1118] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_q_r_Yk_V1IQ __pyx_string_tab[1119] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_r_q_Bd_d_WX __pyx_string_tab[1120] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_r_q_Qha_1HA __pyx_string_tab[1121] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns __pyx_string_tab[1122] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_10 __pyx_string_tab[1123] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_11 __pyx_string_tab[1124] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_12 __pyx_string_tab[1125] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_13 __pyx_string_tab[1126] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_14 __pyx_string_tab[1127] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_15 __pyx_string_tab[1128] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_2 __pyx_string_tab[1129] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_3 __pyx_string_tab[1130] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_4 __pyx_string_tab[1131] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_5 __pyx_string_tab[1132] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_6 __pyx_string_tab[1133] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_7 __pyx_string_tab[1134] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_8 __pyx_string_tab[1135] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_9 __pyx_string_tab[1136] -#define __pyx_kp_b_iso88591_bc_aq_Q_Qa_y_1_Kq_q_6_a_a_6_4vX __pyx_string_tab[1137] -#define __pyx_kp_b_iso88591_c_X_X_m_m_G_G_H_6_aq_Q_Qa_y_1_K __pyx_string_tab[1138] -#define __pyx_kp_b_iso88591_cd_aq_Q_Qa_y_1_Kq_q_6_a_a_F_D_h __pyx_string_tab[1139] -#define __pyx_kp_b_iso88591_d_W_W_X_aq_Q_Qa_y_1_Kq_q_6_a_a __pyx_string_tab[1140] -#define __pyx_kp_b_iso88591_d_Y_Y_Z_2_aq_Q_Qa_y_1_Kq_q_6_a __pyx_string_tab[1141] -#define __pyx_kp_b_iso88591_ef_aq_Q_Qa_y_1_Kq_q_6_a_a_BfHBd __pyx_string_tab[1142] -#define __pyx_kp_b_iso88591_fg2_aq_Q_Qa_y_1_Kq_q_6_a_q_q_Rv __pyx_string_tab[1143] -#define __pyx_kp_b_iso88591_fg_aq_Q_Qa_y_1_Kq_q_6_a_a_RvXRt __pyx_string_tab[1144] -#define __pyx_kp_b_iso88591_q_1_Q_a __pyx_string_tab[1145] -#define __pyx_kp_b_iso88591_q_9A_1_q_1_1_1A_q_a_1A_4z_A_G1 __pyx_string_tab[1146] -#define __pyx_kp_b_iso88591_q_aq_T_q_8_T_U_7_A_we_b_Q_q_2T __pyx_string_tab[1147] -#define __pyx_kp_b_iso88591_v_w_P_P_Q_aq_Qa_Kq_6_a_8_T_3hjX __pyx_string_tab[1148] -#define __pyx_kp_b_iso88591_v_w_Q_Q_f_f_A_2_aq_Qa_Kq_6_a_8 __pyx_string_tab[1149] -#define __pyx_kp_b_iso88591_w_x_R_R_S_aq_Qa_Kq_6_a_8_T_3hjX __pyx_string_tab[1150] -#define __pyx_kp_b_iso88591_wx_aq_Qa_Kq_6_gQ_8_T_3hjX_eeoou __pyx_string_tab[1151] -#define __pyx_kp_b_iso88591_y_1_q_Q_a_Q_a_Q_a_Q_a_Q_a_Q_a_Q __pyx_string_tab[1152] -#define __pyx_kp_b_iso88591_z_R_R_S_aq_Qa_Kq_6_gQ_8_T_3hjX __pyx_string_tab[1153] +#define __pyx_kp_u_ADXR_has_no_unstable_period_of_i __pyx_string_tab[2] +#define __pyx_kp_u_A_period_of_1_performs_no_smooth __pyx_string_tab[3] +#define __pyx_kp_u_Allocation_Error_TA_ALLOC_ERR __pyx_string_tab[4] +#define __pyx_kp_u_Bad_Object_TA_BAD_OBJECT __pyx_string_tab[5] +#define __pyx_kp_u_Bad_Parameter_TA_BAD_PARAM __pyx_string_tab[6] +#define __pyx_kp_u_Bull_Bear_Pattern_Bearish_0_Neut __pyx_string_tab[7] +#define __pyx_kp_u_Dashed_Line __pyx_string_tab[8] +#define __pyx_kp_u_Dotted_Line __pyx_string_tab[9] +#define __pyx_kp_u_Double_Exponential_Moving_Averag __pyx_string_tab[10] +#define __pyx_kp_u_Exponential_Moving_Average __pyx_string_tab[11] +#define __pyx_kp_u_Function_Not_Found_TA_FUNC_NOT_F __pyx_string_tab[12] +#define __pyx_kp_u_Function_has_a_streaming_API __pyx_string_tab[13] +#define __pyx_kp_u_Function_has_an_unstable_period __pyx_string_tab[14] +#define __pyx_kp_u_Group_Not_Found_TA_GROUP_NOT_FOU __pyx_string_tab[15] +#define __pyx_kp_u_Hull_Moving_Average __pyx_string_tab[16] +#define __pyx_kp_u_Input_Not_All_Initialized_TA_INP __pyx_string_tab[17] +#define __pyx_kp_u_Inputs __pyx_string_tab[18] +#define __pyx_kp_u_Insufficient_History_TA_INSUFFIC __pyx_string_tab[19] +#define __pyx_kp_u_Internal_Error_TA_INTERNAL_ERROR __pyx_string_tab[20] +#define __pyx_kp_u_Invalid_Handle_TA_INVALID_HANDLE __pyx_string_tab[21] +#define __pyx_kp_u_Invalid_List_Type_TA_INVALID_LIS __pyx_string_tab[22] +#define __pyx_kp_u_Invalid_Parameter_Function_TA_IN __pyx_string_tab[23] +#define __pyx_kp_u_Invalid_Parameter_Holder_TA_INVA __pyx_string_tab[24] +#define __pyx_kp_u_Invalid_Parameter_Holder_Type_TA __pyx_string_tab[25] +#define __pyx_kp_u_Invalid_parameter_value_for __pyx_string_tab[26] +#define __pyx_kp_u_Kaufman_Adaptive_Moving_Average __pyx_string_tab[27] +#define __pyx_kp_u_Library_Not_Initialized_TA_LIB_N __pyx_string_tab[28] +#define __pyx_kp_u_MESA_Adaptive_Moving_Average __pyx_string_tab[29] +#define __pyx_kp_u_MFI_s_unstable_period_was_retire __pyx_string_tab[30] +#define __pyx_kp_u_No_Moving_Average_identity __pyx_string_tab[31] +#define __pyx_kp_u_None __pyx_string_tab[32] +#define __pyx_kp_u_Not_Supported_TA_NOT_SUPPORTED __pyx_string_tab[33] +#define __pyx_kp_u_Not_enough_price_arguments_expec __pyx_string_tab[34] +#define __pyx_kp_u_Note_that_Cython_is_deliberately __pyx_string_tab[35] +#define __pyx_kp_u_Out_of_Range_End_Index_TA_OUT_OF __pyx_string_tab[36] +#define __pyx_kp_u_Out_of_Range_Start_Index_TA_OUT __pyx_string_tab[37] +#define __pyx_kp_u_Output_Not_All_Initialized_TA_OU __pyx_string_tab[38] +#define __pyx_kp_u_Output_can_be_NaN_or_infinite __pyx_string_tab[39] +#define __pyx_kp_u_Output_can_be_negative __pyx_string_tab[40] +#define __pyx_kp_u_Output_can_be_positive __pyx_string_tab[41] +#define __pyx_kp_u_Output_can_be_zero __pyx_string_tab[42] +#define __pyx_kp_u_Output_is_a_candlestick __pyx_string_tab[43] +#define __pyx_kp_u_Output_is_optional_nullable __pyx_string_tab[44] +#define __pyx_kp_u_Output_is_over_volume __pyx_string_tab[45] +#define __pyx_kp_u_Output_is_path_dependent __pyx_string_tab[46] +#define __pyx_kp_u_Output_scale_same_as_input __pyx_string_tab[47] +#define __pyx_kp_u_Outputs __pyx_string_tab[48] +#define __pyx_kp_u_Parameters __pyx_string_tab[49] +#define __pyx_kp_u_Pattern_Bool __pyx_string_tab[50] +#define __pyx_kp_u_STOCHRSI_has_no_unstable_period __pyx_string_tab[51] +#define __pyx_kp_u_Simple_Moving_Average __pyx_string_tab[52] +#define __pyx_kp_u_Strength_Pattern_200_100_Bearish __pyx_string_tab[53] +#define __pyx_kp_u_The_Function_s_Own_Default_Movin __pyx_string_tab[54] +#define __pyx_kp_u_This_is_a_pythonic_wrapper_arou __pyx_string_tab[55] +#define __pyx_kp_u_Too_many_price_arguments_expecte __pyx_string_tab[56] +#define __pyx_kp_u_Triangular_Moving_Average __pyx_string_tab[57] +#define __pyx_kp_u_Triple_Exponential_Moving_Averag __pyx_string_tab[58] +#define __pyx_kp_u_Triple_Generalized_Double_Expone __pyx_string_tab[59] +#define __pyx_kp_u_Unknown_Error __pyx_string_tab[60] +#define __pyx_kp_u_Unknown_Error_TA_UNKNOWN_ERR __pyx_string_tab[61] +#define __pyx_kp_u_Values_represent_a_lower_limit __pyx_string_tab[62] +#define __pyx_kp_u_Values_represent_an_upper_limit __pyx_string_tab[63] +#define __pyx_kp_u_Weighted_Moving_Average __pyx_string_tab[64] +#define __pyx_kp_u_Wilder_s_Smoothed_Moving_Average __pyx_string_tab[65] +#define __pyx_kp_u_Zero_Lag_Exponential_Moving_Aver __pyx_string_tab[66] +#define __pyx_kp_u__10 __pyx_string_tab[67] +#define __pyx_kp_u__11 __pyx_string_tab[68] +#define __pyx_kp_u__12 __pyx_string_tab[69] +#define __pyx_kp_u__13 __pyx_string_tab[70] +#define __pyx_kp_u__14 __pyx_string_tab[71] +#define __pyx_kp_u__15 __pyx_string_tab[72] +#define __pyx_kp_u__2 __pyx_string_tab[73] +#define __pyx_kp_u__3 __pyx_string_tab[74] +#define __pyx_kp_u__4 __pyx_string_tab[75] +#define __pyx_kp_u__5 __pyx_string_tab[76] +#define __pyx_kp_u__6 __pyx_string_tab[77] +#define __pyx_kp_u__7 __pyx_string_tab[78] +#define __pyx_kp_u__8 __pyx_string_tab[79] +#define __pyx_kp_u__9 __pyx_string_tab[80] +#define __pyx_kp_u_add_note __pyx_string_tab[81] +#define __pyx_kp_u_any_ndarray __pyx_string_tab[82] +#define __pyx_kp_u_display_name_s_group_s __pyx_string_tab[83] +#define __pyx_kp_u_expected __pyx_string_tab[84] +#define __pyx_kp_u_function_failed_with_error_code __pyx_string_tab[85] +#define __pyx_kp_u_got __pyx_string_tab[86] +#define __pyx_kp_u_input_array_has_wrong_dimensions __pyx_string_tab[87] +#define __pyx_kp_u_input_array_lengths_are_differen __pyx_string_tab[88] +#define __pyx_kp_u_input_array_type_is_not_double __pyx_string_tab[89] +#define __pyx_kp_u_input_arrays_2 __pyx_string_tab[90] +#define __pyx_kp_u_input_arrays_parameter_missing_r __pyx_string_tab[91] +#define __pyx_kp_u_integer_values_are_100_0_or_100 __pyx_string_tab[92] +#define __pyx_kp_u_is_deprecated_and_has_no_effect __pyx_string_tab[93] +#define __pyx_kp_u_numpy__core_multiarray_failed_to __pyx_string_tab[94] +#define __pyx_kp_u_numpy__core_umath_failed_to_impo __pyx_string_tab[95] +#define __pyx_kp_u_s_2 __pyx_string_tab[96] +#define __pyx_kp_u_s_3 __pyx_string_tab[97] +#define __pyx_kp_u_s_4 __pyx_string_tab[98] +#define __pyx_kp_u_stream__s __pyx_string_tab[99] +#define __pyx_kp_u_talib__abstract_pxi __pyx_string_tab[100] +#define __pyx_kp_u_talib__common_pxi __pyx_string_tab[101] +#define __pyx_kp_u_talib__func_pxi __pyx_string_tab[102] +#define __pyx_kp_u_talib__stream_pxi __pyx_string_tab[103] +#define __pyx_kp_u_talib_collections __pyx_string_tab[104] +#define __pyx_kp_u_talib_numpy __pyx_string_tab[105] +#define __pyx_kp_u_talib_ordereddict __pyx_string_tab[106] +#define __pyx_kp_u_talib_pandas __pyx_string_tab[107] +#define __pyx_kp_u_talib_polars __pyx_string_tab[108] +#define __pyx_kp_u_talib_sys __pyx_string_tab[109] +#define __pyx_kp_u_talib_threading __pyx_string_tab[110] +#define __pyx_kp_u_talib_warnings __pyx_string_tab[111] +#define __pyx_kp_u_unstable_period __pyx_string_tab[112] +#define __pyx_n_u_AC __pyx_string_tab[113] +#define __pyx_n_u_ACCBANDS __pyx_string_tab[114] +#define __pyx_n_u_ACOS __pyx_string_tab[115] +#define __pyx_n_u_AD __pyx_string_tab[116] +#define __pyx_n_u_ADD __pyx_string_tab[117] +#define __pyx_n_u_ADOSC __pyx_string_tab[118] +#define __pyx_n_u_ADR __pyx_string_tab[119] +#define __pyx_n_u_ADX __pyx_string_tab[120] +#define __pyx_n_u_ADXR __pyx_string_tab[121] +#define __pyx_n_u_ALL __pyx_string_tab[122] +#define __pyx_n_u_AO __pyx_string_tab[123] +#define __pyx_n_u_APO __pyx_string_tab[124] +#define __pyx_n_u_AROON __pyx_string_tab[125] +#define __pyx_n_u_AROONOSC __pyx_string_tab[126] +#define __pyx_n_u_ARRAY_TYPES __pyx_string_tab[127] +#define __pyx_n_u_ASIN __pyx_string_tab[128] +#define __pyx_n_u_ATAN __pyx_string_tab[129] +#define __pyx_n_u_ATR __pyx_string_tab[130] +#define __pyx_n_u_AVGDEV __pyx_string_tab[131] +#define __pyx_n_u_AVGPRICE __pyx_string_tab[132] +#define __pyx_n_u_AllCandleSettings __pyx_string_tab[133] +#define __pyx_n_u_BBANDS __pyx_string_tab[134] +#define __pyx_n_u_BETA __pyx_string_tab[135] +#define __pyx_n_u_BOP __pyx_string_tab[136] +#define __pyx_n_u_BodyDoji __pyx_string_tab[137] +#define __pyx_n_u_BodyLong __pyx_string_tab[138] +#define __pyx_n_u_BodyShort __pyx_string_tab[139] +#define __pyx_n_u_BodyVeryLong __pyx_string_tab[140] +#define __pyx_n_u_CCI __pyx_string_tab[141] +#define __pyx_n_u_CDL2CROWS __pyx_string_tab[142] +#define __pyx_n_u_CDL3BLACKCROWS __pyx_string_tab[143] +#define __pyx_n_u_CDL3INSIDE __pyx_string_tab[144] +#define __pyx_n_u_CDL3LINESTRIKE __pyx_string_tab[145] +#define __pyx_n_u_CDL3OUTSIDE __pyx_string_tab[146] +#define __pyx_n_u_CDL3STARSINSOUTH __pyx_string_tab[147] +#define __pyx_n_u_CDL3WHITESOLDIERS __pyx_string_tab[148] +#define __pyx_n_u_CDLABANDONEDBABY __pyx_string_tab[149] +#define __pyx_n_u_CDLADVANCEBLOCK __pyx_string_tab[150] +#define __pyx_n_u_CDLBELTHOLD __pyx_string_tab[151] +#define __pyx_n_u_CDLBREAKAWAY __pyx_string_tab[152] +#define __pyx_n_u_CDLCLOSINGMARUBOZU __pyx_string_tab[153] +#define __pyx_n_u_CDLCONCEALBABYSWALL __pyx_string_tab[154] +#define __pyx_n_u_CDLCOUNTERATTACK __pyx_string_tab[155] +#define __pyx_n_u_CDLDARKCLOUDCOVER __pyx_string_tab[156] +#define __pyx_n_u_CDLDOJI __pyx_string_tab[157] +#define __pyx_n_u_CDLDOJISTAR __pyx_string_tab[158] +#define __pyx_n_u_CDLDRAGONFLYDOJI __pyx_string_tab[159] +#define __pyx_n_u_CDLENGULFING __pyx_string_tab[160] +#define __pyx_n_u_CDLEVENINGDOJISTAR __pyx_string_tab[161] +#define __pyx_n_u_CDLEVENINGSTAR __pyx_string_tab[162] +#define __pyx_n_u_CDLGAPSIDESIDEWHITE __pyx_string_tab[163] +#define __pyx_n_u_CDLGRAVESTONEDOJI __pyx_string_tab[164] +#define __pyx_n_u_CDLHAMMER __pyx_string_tab[165] +#define __pyx_n_u_CDLHANGINGMAN __pyx_string_tab[166] +#define __pyx_n_u_CDLHARAMI __pyx_string_tab[167] +#define __pyx_n_u_CDLHARAMICROSS __pyx_string_tab[168] +#define __pyx_n_u_CDLHIGHWAVE __pyx_string_tab[169] +#define __pyx_n_u_CDLHIKKAKE __pyx_string_tab[170] +#define __pyx_n_u_CDLHIKKAKEMOD __pyx_string_tab[171] +#define __pyx_n_u_CDLHOMINGPIGEON __pyx_string_tab[172] +#define __pyx_n_u_CDLIDENTICAL3CROWS __pyx_string_tab[173] +#define __pyx_n_u_CDLINNECK __pyx_string_tab[174] +#define __pyx_n_u_CDLINVERTEDHAMMER __pyx_string_tab[175] +#define __pyx_n_u_CDLKICKING __pyx_string_tab[176] +#define __pyx_n_u_CDLKICKINGBYLENGTH __pyx_string_tab[177] +#define __pyx_n_u_CDLLADDERBOTTOM __pyx_string_tab[178] +#define __pyx_n_u_CDLLONGLEGGEDDOJI __pyx_string_tab[179] +#define __pyx_n_u_CDLLONGLINE __pyx_string_tab[180] +#define __pyx_n_u_CDLMARUBOZU __pyx_string_tab[181] +#define __pyx_n_u_CDLMATCHINGLOW __pyx_string_tab[182] +#define __pyx_n_u_CDLMATHOLD __pyx_string_tab[183] +#define __pyx_n_u_CDLMORNINGDOJISTAR __pyx_string_tab[184] +#define __pyx_n_u_CDLMORNINGSTAR __pyx_string_tab[185] +#define __pyx_n_u_CDLONNECK __pyx_string_tab[186] +#define __pyx_n_u_CDLPIERCING __pyx_string_tab[187] +#define __pyx_n_u_CDLRICKSHAWMAN __pyx_string_tab[188] +#define __pyx_n_u_CDLRISEFALL3METHODS __pyx_string_tab[189] +#define __pyx_n_u_CDLSEPARATINGLINES __pyx_string_tab[190] +#define __pyx_n_u_CDLSHOOTINGSTAR __pyx_string_tab[191] +#define __pyx_n_u_CDLSHORTLINE __pyx_string_tab[192] +#define __pyx_n_u_CDLSPINNINGTOP __pyx_string_tab[193] +#define __pyx_n_u_CDLSTALLEDPATTERN __pyx_string_tab[194] +#define __pyx_n_u_CDLSTICKSANDWICH __pyx_string_tab[195] +#define __pyx_n_u_CDLTAKURI __pyx_string_tab[196] +#define __pyx_n_u_CDLTASUKIGAP __pyx_string_tab[197] +#define __pyx_n_u_CDLTHRUSTING __pyx_string_tab[198] +#define __pyx_n_u_CDLTRISTAR __pyx_string_tab[199] +#define __pyx_n_u_CDLUNIQUE3RIVER __pyx_string_tab[200] +#define __pyx_n_u_CDLUPSIDEGAP2CROWS __pyx_string_tab[201] +#define __pyx_n_u_CDLXSIDEGAP3METHODS __pyx_string_tab[202] +#define __pyx_n_u_CEIL __pyx_string_tab[203] +#define __pyx_n_u_CMF __pyx_string_tab[204] +#define __pyx_n_u_CMO __pyx_string_tab[205] +#define __pyx_n_u_CMOU __pyx_string_tab[206] +#define __pyx_n_u_COPPOCK __pyx_string_tab[207] +#define __pyx_n_u_CORREL __pyx_string_tab[208] +#define __pyx_n_u_COS __pyx_string_tab[209] +#define __pyx_n_u_COSH __pyx_string_tab[210] +#define __pyx_n_u_CUMSUM __pyx_string_tab[211] +#define __pyx_n_u_CVI __pyx_string_tab[212] +#define __pyx_n_u_CandleSettingType __pyx_string_tab[213] +#define __pyx_n_u_DEFAULT __pyx_string_tab[214] +#define __pyx_n_u_DEMA __pyx_string_tab[215] +#define __pyx_n_u_DISABLED __pyx_string_tab[216] +#define __pyx_n_u_DIV __pyx_string_tab[217] +#define __pyx_n_u_DONCHIAN __pyx_string_tab[218] +#define __pyx_n_u_DPO __pyx_string_tab[219] +#define __pyx_n_u_DX __pyx_string_tab[220] +#define __pyx_n_u_DataFrame __pyx_string_tab[221] +#define __pyx_n_u_Dot __pyx_string_tab[222] +#define __pyx_n_u_EFI __pyx_string_tab[223] +#define __pyx_n_u_EMA __pyx_string_tab[224] +#define __pyx_n_u_ER __pyx_string_tab[225] +#define __pyx_n_u_ERI __pyx_string_tab[226] +#define __pyx_n_u_EXP __pyx_string_tab[227] +#define __pyx_n_u_Equal __pyx_string_tab[228] +#define __pyx_n_u_FLOOR __pyx_string_tab[229] +#define __pyx_n_u_FOSC __pyx_string_tab[230] +#define __pyx_n_u_FRACTAL __pyx_string_tab[231] +#define __pyx_n_u_Far __pyx_string_tab[232] +#define __pyx_n_u_Function __pyx_string_tab[233] +#define __pyx_n_u_Function___call __pyx_string_tab[234] +#define __pyx_n_u_Function___call_function __pyx_string_tab[235] +#define __pyx_n_u_Function___check_opt_input_value __pyx_string_tab[236] +#define __pyx_n_u_Function___get_opt_input_value __pyx_string_tab[237] +#define __pyx_n_u_Function___init __pyx_string_tab[238] +#define __pyx_n_u_Function___input_price_series_na __pyx_string_tab[239] +#define __pyx_n_u_Function___local __pyx_string_tab[240] +#define __pyx_n_u_Function___repr __pyx_string_tab[241] +#define __pyx_n_u_Function___str __pyx_string_tab[242] +#define __pyx_n_u_Function___unicode __pyx_string_tab[243] +#define __pyx_n_u_Function__call_function __pyx_string_tab[244] +#define __pyx_n_u_Function__check_opt_input_value __pyx_string_tab[245] +#define __pyx_n_u_Function__get_opt_input_value __pyx_string_tab[246] +#define __pyx_n_u_Function__input_price_series_na __pyx_string_tab[247] +#define __pyx_n_u_Function__local __pyx_string_tab[248] +#define __pyx_n_u_Function__localdata __pyx_string_tab[249] +#define __pyx_n_u_Function__name __pyx_string_tab[250] +#define __pyx_n_u_Function__namestr __pyx_string_tab[251] +#define __pyx_n_u_Function_function_flags __pyx_string_tab[252] +#define __pyx_n_u_Function_get_input_arrays __pyx_string_tab[253] +#define __pyx_n_u_Function_get_input_names __pyx_string_tab[254] +#define __pyx_n_u_Function_get_parameters __pyx_string_tab[255] +#define __pyx_n_u_Function_info __pyx_string_tab[256] +#define __pyx_n_u_Function_lookback __pyx_string_tab[257] +#define __pyx_n_u_Function_output_flags __pyx_string_tab[258] +#define __pyx_n_u_Function_output_names __pyx_string_tab[259] +#define __pyx_n_u_Function_outputs __pyx_string_tab[260] +#define __pyx_n_u_Function_run __pyx_string_tab[261] +#define __pyx_n_u_Function_set_function_args __pyx_string_tab[262] +#define __pyx_n_u_Function_set_input_arrays __pyx_string_tab[263] +#define __pyx_n_u_Function_set_input_names __pyx_string_tab[264] +#define __pyx_n_u_Function_set_parameters __pyx_string_tab[265] +#define __pyx_n_u_HA __pyx_string_tab[266] +#define __pyx_n_u_HMA __pyx_string_tab[267] +#define __pyx_n_u_HT_DCPERIOD __pyx_string_tab[268] +#define __pyx_n_u_HT_DCPHASE __pyx_string_tab[269] +#define __pyx_n_u_HT_PHASOR __pyx_string_tab[270] +#define __pyx_n_u_HT_SINE __pyx_string_tab[271] +#define __pyx_n_u_HT_TRENDLINE __pyx_string_tab[272] +#define __pyx_n_u_HT_TRENDMODE __pyx_string_tab[273] +#define __pyx_n_u_HighLow __pyx_string_tab[274] +#define __pyx_n_u_Histogram __pyx_string_tab[275] +#define __pyx_n_u_IMI __pyx_string_tab[276] +#define __pyx_n_u_INPUT_ARRAYS_TYPES __pyx_string_tab[277] +#define __pyx_n_u_INPUT_PRICE_SERIES_DEFAULTS __pyx_string_tab[278] +#define __pyx_n_u_KAMA __pyx_string_tab[279] +#define __pyx_n_u_KC __pyx_string_tab[280] +#define __pyx_n_u_KDJ __pyx_string_tab[281] +#define __pyx_n_u_LINEARREG __pyx_string_tab[282] +#define __pyx_n_u_LINEARREG_ANGLE __pyx_string_tab[283] +#define __pyx_n_u_LINEARREG_INTERCEPT __pyx_string_tab[284] +#define __pyx_n_u_LINEARREG_SLOPE __pyx_string_tab[285] +#define __pyx_n_u_LN __pyx_string_tab[286] +#define __pyx_n_u_LOG10 __pyx_string_tab[287] +#define __pyx_n_u_Line __pyx_string_tab[288] +#define __pyx_n_u_MA __pyx_string_tab[289] +#define __pyx_n_u_MACD __pyx_string_tab[290] +#define __pyx_n_u_MACDEXT __pyx_string_tab[291] +#define __pyx_n_u_MACDFIX __pyx_string_tab[292] +#define __pyx_n_u_MAMA __pyx_string_tab[293] +#define __pyx_n_u_MARKETFI __pyx_string_tab[294] +#define __pyx_n_u_MASSI __pyx_string_tab[295] +#define __pyx_n_u_MAVP __pyx_string_tab[296] +#define __pyx_n_u_MAX __pyx_string_tab[297] +#define __pyx_n_u_MAXINDEX __pyx_string_tab[298] +#define __pyx_n_u_MA_Type __pyx_string_tab[299] +#define __pyx_n_u_MA_Type___getitem __pyx_string_tab[300] +#define __pyx_n_u_MA_Type___init __pyx_string_tab[301] +#define __pyx_n_u_MEDPRICE __pyx_string_tab[302] +#define __pyx_n_u_MFI __pyx_string_tab[303] +#define __pyx_n_u_MIDPOINT __pyx_string_tab[304] +#define __pyx_n_u_MIDPRICE __pyx_string_tab[305] +#define __pyx_n_u_MIN __pyx_string_tab[306] +#define __pyx_n_u_MININDEX __pyx_string_tab[307] +#define __pyx_n_u_MINMAX __pyx_string_tab[308] +#define __pyx_n_u_MINMAXINDEX __pyx_string_tab[309] +#define __pyx_n_u_MINUS_DI __pyx_string_tab[310] +#define __pyx_n_u_MINUS_DM __pyx_string_tab[311] +#define __pyx_n_u_MOM __pyx_string_tab[312] +#define __pyx_n_u_MULT __pyx_string_tab[313] +#define __pyx_n_u_NATR __pyx_string_tab[314] +#define __pyx_n_u_NONE __pyx_string_tab[315] +#define __pyx_n_u_NVI __pyx_string_tab[316] +#define __pyx_n_u_Near __pyx_string_tab[317] +#define __pyx_n_u_OBV __pyx_string_tab[318] +#define __pyx_n_u_OrderedDict __pyx_string_tab[319] +#define __pyx_n_u_PANDAS_DATAFRAME __pyx_string_tab[320] +#define __pyx_n_u_PANDAS_SERIES __pyx_string_tab[321] +#define __pyx_n_u_PERCENTILE __pyx_string_tab[322] +#define __pyx_n_u_PERCENTRANK __pyx_string_tab[323] +#define __pyx_n_u_PLUS_DI __pyx_string_tab[324] +#define __pyx_n_u_PLUS_DM __pyx_string_tab[325] +#define __pyx_n_u_POLARS_DATAFRAME __pyx_string_tab[326] +#define __pyx_n_u_POLARS_SERIES __pyx_string_tab[327] +#define __pyx_n_u_PPO __pyx_string_tab[328] +#define __pyx_n_u_PVI __pyx_string_tab[329] +#define __pyx_n_u_PVO __pyx_string_tab[330] +#define __pyx_n_u_PVT __pyx_string_tab[331] +#define __pyx_n_u_Pyx_PyDict_NextRef __pyx_string_tab[332] +#define __pyx_n_u_QSTICK __pyx_string_tab[333] +#define __pyx_n_u_RMA __pyx_string_tab[334] +#define __pyx_n_u_ROC __pyx_string_tab[335] +#define __pyx_n_u_ROCP __pyx_string_tab[336] +#define __pyx_n_u_ROCR __pyx_string_tab[337] +#define __pyx_n_u_ROCR100 __pyx_string_tab[338] +#define __pyx_n_u_RSI __pyx_string_tab[339] +#define __pyx_n_u_RVI __pyx_string_tab[340] +#define __pyx_n_u_RVOL __pyx_string_tab[341] +#define __pyx_n_u_RangeType __pyx_string_tab[342] +#define __pyx_n_u_RealBody __pyx_string_tab[343] +#define __pyx_n_u_SAR __pyx_string_tab[344] +#define __pyx_n_u_SAREXT __pyx_string_tab[345] +#define __pyx_n_u_SIN __pyx_string_tab[346] +#define __pyx_n_u_SINH __pyx_string_tab[347] +#define __pyx_n_u_SMA __pyx_string_tab[348] +#define __pyx_n_u_SMI __pyx_string_tab[349] +#define __pyx_n_u_SQRT __pyx_string_tab[350] +#define __pyx_n_u_STDDEV __pyx_string_tab[351] +#define __pyx_n_u_STOCH __pyx_string_tab[352] +#define __pyx_n_u_STOCHF __pyx_string_tab[353] +#define __pyx_n_u_STOCHRSI __pyx_string_tab[354] +#define __pyx_n_u_SUB __pyx_string_tab[355] +#define __pyx_n_u_SUM __pyx_string_tab[356] +#define __pyx_n_u_SUPERTREND __pyx_string_tab[357] +#define __pyx_n_u_Series __pyx_string_tab[358] +#define __pyx_n_u_ShadowLong __pyx_string_tab[359] +#define __pyx_n_u_ShadowShort __pyx_string_tab[360] +#define __pyx_n_u_ShadowVeryLong __pyx_string_tab[361] +#define __pyx_n_u_ShadowVeryShort __pyx_string_tab[362] +#define __pyx_n_u_Shadows __pyx_string_tab[363] +#define __pyx_n_u_T3 __pyx_string_tab[364] +#define __pyx_n_u_TAN __pyx_string_tab[365] +#define __pyx_n_u_TANH __pyx_string_tab[366] +#define __pyx_n_u_TA_AC __pyx_string_tab[367] +#define __pyx_n_u_TA_ACCBANDS __pyx_string_tab[368] +#define __pyx_n_u_TA_ACOS __pyx_string_tab[369] +#define __pyx_n_u_TA_AD __pyx_string_tab[370] +#define __pyx_n_u_TA_ADD __pyx_string_tab[371] +#define __pyx_n_u_TA_ADOSC __pyx_string_tab[372] +#define __pyx_n_u_TA_ADR __pyx_string_tab[373] +#define __pyx_n_u_TA_ADX __pyx_string_tab[374] +#define __pyx_n_u_TA_ADXR __pyx_string_tab[375] +#define __pyx_n_u_TA_AO __pyx_string_tab[376] +#define __pyx_n_u_TA_APO __pyx_string_tab[377] +#define __pyx_n_u_TA_AROON __pyx_string_tab[378] +#define __pyx_n_u_TA_AROONOSC __pyx_string_tab[379] +#define __pyx_n_u_TA_ASIN __pyx_string_tab[380] +#define __pyx_n_u_TA_ATAN __pyx_string_tab[381] +#define __pyx_n_u_TA_ATR __pyx_string_tab[382] +#define __pyx_n_u_TA_AVGDEV __pyx_string_tab[383] +#define __pyx_n_u_TA_AVGPRICE __pyx_string_tab[384] +#define __pyx_n_u_TA_BBANDS __pyx_string_tab[385] +#define __pyx_n_u_TA_BETA __pyx_string_tab[386] +#define __pyx_n_u_TA_BOP __pyx_string_tab[387] +#define __pyx_n_u_TA_CCI __pyx_string_tab[388] +#define __pyx_n_u_TA_CDL2CROWS __pyx_string_tab[389] +#define __pyx_n_u_TA_CDL3BLACKCROWS __pyx_string_tab[390] +#define __pyx_n_u_TA_CDL3INSIDE __pyx_string_tab[391] +#define __pyx_n_u_TA_CDL3LINESTRIKE __pyx_string_tab[392] +#define __pyx_n_u_TA_CDL3OUTSIDE __pyx_string_tab[393] +#define __pyx_n_u_TA_CDL3STARSINSOUTH __pyx_string_tab[394] +#define __pyx_n_u_TA_CDL3WHITESOLDIERS __pyx_string_tab[395] +#define __pyx_n_u_TA_CDLABANDONEDBABY __pyx_string_tab[396] +#define __pyx_n_u_TA_CDLADVANCEBLOCK __pyx_string_tab[397] +#define __pyx_n_u_TA_CDLBELTHOLD __pyx_string_tab[398] +#define __pyx_n_u_TA_CDLBREAKAWAY __pyx_string_tab[399] +#define __pyx_n_u_TA_CDLCLOSINGMARUBOZU __pyx_string_tab[400] +#define __pyx_n_u_TA_CDLCONCEALBABYSWALL __pyx_string_tab[401] +#define __pyx_n_u_TA_CDLCOUNTERATTACK __pyx_string_tab[402] +#define __pyx_n_u_TA_CDLDARKCLOUDCOVER __pyx_string_tab[403] +#define __pyx_n_u_TA_CDLDOJI __pyx_string_tab[404] +#define __pyx_n_u_TA_CDLDOJISTAR __pyx_string_tab[405] +#define __pyx_n_u_TA_CDLDRAGONFLYDOJI __pyx_string_tab[406] +#define __pyx_n_u_TA_CDLENGULFING __pyx_string_tab[407] +#define __pyx_n_u_TA_CDLEVENINGDOJISTAR __pyx_string_tab[408] +#define __pyx_n_u_TA_CDLEVENINGSTAR __pyx_string_tab[409] +#define __pyx_n_u_TA_CDLGAPSIDESIDEWHITE __pyx_string_tab[410] +#define __pyx_n_u_TA_CDLGRAVESTONEDOJI __pyx_string_tab[411] +#define __pyx_n_u_TA_CDLHAMMER __pyx_string_tab[412] +#define __pyx_n_u_TA_CDLHANGINGMAN __pyx_string_tab[413] +#define __pyx_n_u_TA_CDLHARAMI __pyx_string_tab[414] +#define __pyx_n_u_TA_CDLHARAMICROSS __pyx_string_tab[415] +#define __pyx_n_u_TA_CDLHIGHWAVE __pyx_string_tab[416] +#define __pyx_n_u_TA_CDLHIKKAKE __pyx_string_tab[417] +#define __pyx_n_u_TA_CDLHIKKAKEMOD __pyx_string_tab[418] +#define __pyx_n_u_TA_CDLHOMINGPIGEON __pyx_string_tab[419] +#define __pyx_n_u_TA_CDLIDENTICAL3CROWS __pyx_string_tab[420] +#define __pyx_n_u_TA_CDLINNECK __pyx_string_tab[421] +#define __pyx_n_u_TA_CDLINVERTEDHAMMER __pyx_string_tab[422] +#define __pyx_n_u_TA_CDLKICKING __pyx_string_tab[423] +#define __pyx_n_u_TA_CDLKICKINGBYLENGTH __pyx_string_tab[424] +#define __pyx_n_u_TA_CDLLADDERBOTTOM __pyx_string_tab[425] +#define __pyx_n_u_TA_CDLLONGLEGGEDDOJI __pyx_string_tab[426] +#define __pyx_n_u_TA_CDLLONGLINE __pyx_string_tab[427] +#define __pyx_n_u_TA_CDLMARUBOZU __pyx_string_tab[428] +#define __pyx_n_u_TA_CDLMATCHINGLOW __pyx_string_tab[429] +#define __pyx_n_u_TA_CDLMATHOLD __pyx_string_tab[430] +#define __pyx_n_u_TA_CDLMORNINGDOJISTAR __pyx_string_tab[431] +#define __pyx_n_u_TA_CDLMORNINGSTAR __pyx_string_tab[432] +#define __pyx_n_u_TA_CDLONNECK __pyx_string_tab[433] +#define __pyx_n_u_TA_CDLPIERCING __pyx_string_tab[434] +#define __pyx_n_u_TA_CDLRICKSHAWMAN __pyx_string_tab[435] +#define __pyx_n_u_TA_CDLRISEFALL3METHODS __pyx_string_tab[436] +#define __pyx_n_u_TA_CDLSEPARATINGLINES __pyx_string_tab[437] +#define __pyx_n_u_TA_CDLSHOOTINGSTAR __pyx_string_tab[438] +#define __pyx_n_u_TA_CDLSHORTLINE __pyx_string_tab[439] +#define __pyx_n_u_TA_CDLSPINNINGTOP __pyx_string_tab[440] +#define __pyx_n_u_TA_CDLSTALLEDPATTERN __pyx_string_tab[441] +#define __pyx_n_u_TA_CDLSTICKSANDWICH __pyx_string_tab[442] +#define __pyx_n_u_TA_CDLTAKURI __pyx_string_tab[443] +#define __pyx_n_u_TA_CDLTASUKIGAP __pyx_string_tab[444] +#define __pyx_n_u_TA_CDLTHRUSTING __pyx_string_tab[445] +#define __pyx_n_u_TA_CDLTRISTAR __pyx_string_tab[446] +#define __pyx_n_u_TA_CDLUNIQUE3RIVER __pyx_string_tab[447] +#define __pyx_n_u_TA_CDLUPSIDEGAP2CROWS __pyx_string_tab[448] +#define __pyx_n_u_TA_CDLXSIDEGAP3METHODS __pyx_string_tab[449] +#define __pyx_n_u_TA_CEIL __pyx_string_tab[450] +#define __pyx_n_u_TA_CMF __pyx_string_tab[451] +#define __pyx_n_u_TA_CMO __pyx_string_tab[452] +#define __pyx_n_u_TA_CMOU __pyx_string_tab[453] +#define __pyx_n_u_TA_COPPOCK __pyx_string_tab[454] +#define __pyx_n_u_TA_CORREL __pyx_string_tab[455] +#define __pyx_n_u_TA_COS __pyx_string_tab[456] +#define __pyx_n_u_TA_COSH __pyx_string_tab[457] +#define __pyx_n_u_TA_CUMSUM __pyx_string_tab[458] +#define __pyx_n_u_TA_CVI __pyx_string_tab[459] +#define __pyx_n_u_TA_DEMA __pyx_string_tab[460] +#define __pyx_n_u_TA_DIV __pyx_string_tab[461] +#define __pyx_n_u_TA_DONCHIAN __pyx_string_tab[462] +#define __pyx_n_u_TA_DPO __pyx_string_tab[463] +#define __pyx_n_u_TA_DX __pyx_string_tab[464] +#define __pyx_n_u_TA_EFI __pyx_string_tab[465] +#define __pyx_n_u_TA_EMA __pyx_string_tab[466] +#define __pyx_n_u_TA_ER __pyx_string_tab[467] +#define __pyx_n_u_TA_ERI __pyx_string_tab[468] +#define __pyx_n_u_TA_EXP __pyx_string_tab[469] +#define __pyx_n_u_TA_FLOOR __pyx_string_tab[470] +#define __pyx_n_u_TA_FOSC __pyx_string_tab[471] +#define __pyx_n_u_TA_FRACTAL __pyx_string_tab[472] +#define __pyx_n_u_TA_FUNCTION_NAMES __pyx_string_tab[473] +#define __pyx_n_u_TA_FUNC_FLAGS __pyx_string_tab[474] +#define __pyx_n_u_TA_FuncTableAlloc __pyx_string_tab[475] +#define __pyx_n_u_TA_FuncTableFree __pyx_string_tab[476] +#define __pyx_n_u_TA_GetFuncHandle __pyx_string_tab[477] +#define __pyx_n_u_TA_GetFuncInfo __pyx_string_tab[478] +#define __pyx_n_u_TA_GetInputParameterInfo __pyx_string_tab[479] +#define __pyx_n_u_TA_GetLookback __pyx_string_tab[480] +#define __pyx_n_u_TA_GetOptInputParameterInfo __pyx_string_tab[481] +#define __pyx_n_u_TA_GetOutputParameterInfo __pyx_string_tab[482] +#define __pyx_n_u_TA_GroupTableAlloc __pyx_string_tab[483] +#define __pyx_n_u_TA_GroupTableFree __pyx_string_tab[484] +#define __pyx_n_u_TA_HA __pyx_string_tab[485] +#define __pyx_n_u_TA_HMA __pyx_string_tab[486] +#define __pyx_n_u_TA_HT_DCPERIOD __pyx_string_tab[487] +#define __pyx_n_u_TA_HT_DCPHASE __pyx_string_tab[488] +#define __pyx_n_u_TA_HT_PHASOR __pyx_string_tab[489] +#define __pyx_n_u_TA_HT_SINE __pyx_string_tab[490] +#define __pyx_n_u_TA_HT_TRENDLINE __pyx_string_tab[491] +#define __pyx_n_u_TA_HT_TRENDMODE __pyx_string_tab[492] +#define __pyx_n_u_TA_IMI __pyx_string_tab[493] +#define __pyx_n_u_TA_INPUT_FLAGS __pyx_string_tab[494] +#define __pyx_n_u_TA_Initialize __pyx_string_tab[495] +#define __pyx_n_u_TA_KAMA __pyx_string_tab[496] +#define __pyx_n_u_TA_KC __pyx_string_tab[497] +#define __pyx_n_u_TA_KDJ __pyx_string_tab[498] +#define __pyx_n_u_TA_LINEARREG __pyx_string_tab[499] +#define __pyx_n_u_TA_LINEARREG_ANGLE __pyx_string_tab[500] +#define __pyx_n_u_TA_LINEARREG_INTERCEPT __pyx_string_tab[501] +#define __pyx_n_u_TA_LINEARREG_SLOPE __pyx_string_tab[502] +#define __pyx_n_u_TA_LN __pyx_string_tab[503] +#define __pyx_n_u_TA_LOG10 __pyx_string_tab[504] +#define __pyx_n_u_TA_MA __pyx_string_tab[505] +#define __pyx_n_u_TA_MACD __pyx_string_tab[506] +#define __pyx_n_u_TA_MACDEXT __pyx_string_tab[507] +#define __pyx_n_u_TA_MACDFIX __pyx_string_tab[508] +#define __pyx_n_u_TA_MAMA __pyx_string_tab[509] +#define __pyx_n_u_TA_MARKETFI __pyx_string_tab[510] +#define __pyx_n_u_TA_MASSI __pyx_string_tab[511] +#define __pyx_n_u_TA_MAVP __pyx_string_tab[512] +#define __pyx_n_u_TA_MAX __pyx_string_tab[513] +#define __pyx_n_u_TA_MAXINDEX __pyx_string_tab[514] +#define __pyx_n_u_TA_MEDPRICE __pyx_string_tab[515] +#define __pyx_n_u_TA_MFI __pyx_string_tab[516] +#define __pyx_n_u_TA_MIDPOINT __pyx_string_tab[517] +#define __pyx_n_u_TA_MIDPRICE __pyx_string_tab[518] +#define __pyx_n_u_TA_MIN __pyx_string_tab[519] +#define __pyx_n_u_TA_MININDEX __pyx_string_tab[520] +#define __pyx_n_u_TA_MINMAX __pyx_string_tab[521] +#define __pyx_n_u_TA_MINMAXINDEX __pyx_string_tab[522] +#define __pyx_n_u_TA_MINUS_DI __pyx_string_tab[523] +#define __pyx_n_u_TA_MINUS_DM __pyx_string_tab[524] +#define __pyx_n_u_TA_MOM __pyx_string_tab[525] +#define __pyx_n_u_TA_MULT __pyx_string_tab[526] +#define __pyx_n_u_TA_NATR __pyx_string_tab[527] +#define __pyx_n_u_TA_NVI __pyx_string_tab[528] +#define __pyx_n_u_TA_OBV __pyx_string_tab[529] +#define __pyx_n_u_TA_OUTPUT_FLAGS __pyx_string_tab[530] +#define __pyx_n_u_TA_PERCENTILE __pyx_string_tab[531] +#define __pyx_n_u_TA_PERCENTRANK __pyx_string_tab[532] +#define __pyx_n_u_TA_PLUS_DI __pyx_string_tab[533] +#define __pyx_n_u_TA_PLUS_DM __pyx_string_tab[534] +#define __pyx_n_u_TA_PPO __pyx_string_tab[535] +#define __pyx_n_u_TA_PVI __pyx_string_tab[536] +#define __pyx_n_u_TA_PVO __pyx_string_tab[537] +#define __pyx_n_u_TA_PVT __pyx_string_tab[538] +#define __pyx_n_u_TA_ParamHolderAlloc __pyx_string_tab[539] +#define __pyx_n_u_TA_ParamHolderFree __pyx_string_tab[540] +#define __pyx_n_u_TA_QSTICK __pyx_string_tab[541] +#define __pyx_n_u_TA_RMA __pyx_string_tab[542] +#define __pyx_n_u_TA_ROC __pyx_string_tab[543] +#define __pyx_n_u_TA_ROCP __pyx_string_tab[544] +#define __pyx_n_u_TA_ROCR __pyx_string_tab[545] +#define __pyx_n_u_TA_ROCR100 __pyx_string_tab[546] +#define __pyx_n_u_TA_RSI __pyx_string_tab[547] +#define __pyx_n_u_TA_RVI __pyx_string_tab[548] +#define __pyx_n_u_TA_RVOL __pyx_string_tab[549] +#define __pyx_n_u_TA_RestoreCandleDefaultSettings __pyx_string_tab[550] +#define __pyx_n_u_TA_SAR __pyx_string_tab[551] +#define __pyx_n_u_TA_SAREXT __pyx_string_tab[552] +#define __pyx_n_u_TA_SIN __pyx_string_tab[553] +#define __pyx_n_u_TA_SINH __pyx_string_tab[554] +#define __pyx_n_u_TA_SMA __pyx_string_tab[555] +#define __pyx_n_u_TA_SMI __pyx_string_tab[556] +#define __pyx_n_u_TA_SQRT __pyx_string_tab[557] +#define __pyx_n_u_TA_STDDEV __pyx_string_tab[558] +#define __pyx_n_u_TA_STOCH __pyx_string_tab[559] +#define __pyx_n_u_TA_STOCHF __pyx_string_tab[560] +#define __pyx_n_u_TA_STOCHRSI __pyx_string_tab[561] +#define __pyx_n_u_TA_SUB __pyx_string_tab[562] +#define __pyx_n_u_TA_SUM __pyx_string_tab[563] +#define __pyx_n_u_TA_SUPERTREND __pyx_string_tab[564] +#define __pyx_n_u_TA_SetCandleSettings __pyx_string_tab[565] +#define __pyx_n_u_TA_SetCompatibility __pyx_string_tab[566] +#define __pyx_n_u_TA_SetOptInputParamInteger __pyx_string_tab[567] +#define __pyx_n_u_TA_SetOptInputParamReal __pyx_string_tab[568] +#define __pyx_n_u_TA_SetUnstablePeriod __pyx_string_tab[569] +#define __pyx_n_u_TA_Shutdown __pyx_string_tab[570] +#define __pyx_n_u_TA_T3 __pyx_string_tab[571] +#define __pyx_n_u_TA_TAN __pyx_string_tab[572] +#define __pyx_n_u_TA_TANH __pyx_string_tab[573] +#define __pyx_n_u_TA_TEMA __pyx_string_tab[574] +#define __pyx_n_u_TA_TRANGE __pyx_string_tab[575] +#define __pyx_n_u_TA_TRIMA __pyx_string_tab[576] +#define __pyx_n_u_TA_TRIX __pyx_string_tab[577] +#define __pyx_n_u_TA_TSF __pyx_string_tab[578] +#define __pyx_n_u_TA_TSI __pyx_string_tab[579] +#define __pyx_n_u_TA_TYPPRICE __pyx_string_tab[580] +#define __pyx_n_u_TA_ULTOSC __pyx_string_tab[581] +#define __pyx_n_u_TA_VAR __pyx_string_tab[582] +#define __pyx_n_u_TA_VHF __pyx_string_tab[583] +#define __pyx_n_u_TA_VORTEX __pyx_string_tab[584] +#define __pyx_n_u_TA_VWAP __pyx_string_tab[585] +#define __pyx_n_u_TA_VWMA __pyx_string_tab[586] +#define __pyx_n_u_TA_WAD __pyx_string_tab[587] +#define __pyx_n_u_TA_WCLPRICE __pyx_string_tab[588] +#define __pyx_n_u_TA_WILLR __pyx_string_tab[589] +#define __pyx_n_u_TA_WMA __pyx_string_tab[590] +#define __pyx_n_u_TA_ZLEMA __pyx_string_tab[591] +#define __pyx_n_u_TEMA __pyx_string_tab[592] +#define __pyx_n_u_TRANGE __pyx_string_tab[593] +#define __pyx_n_u_TRIMA __pyx_string_tab[594] +#define __pyx_n_u_TRIX __pyx_string_tab[595] +#define __pyx_n_u_TSF __pyx_string_tab[596] +#define __pyx_n_u_TSI __pyx_string_tab[597] +#define __pyx_n_u_TYPPRICE __pyx_string_tab[598] +#define __pyx_n_u_ULTOSC __pyx_string_tab[599] +#define __pyx_n_u_VAR __pyx_string_tab[600] +#define __pyx_n_u_VHF __pyx_string_tab[601] +#define __pyx_n_u_VORTEX __pyx_string_tab[602] +#define __pyx_n_u_VWAP __pyx_string_tab[603] +#define __pyx_n_u_VWMA __pyx_string_tab[604] +#define __pyx_n_u_WAD __pyx_string_tab[605] +#define __pyx_n_u_WCLPRICE __pyx_string_tab[606] +#define __pyx_n_u_WILLR __pyx_string_tab[607] +#define __pyx_n_u_WMA __pyx_string_tab[608] +#define __pyx_n_u_ZLEMA __pyx_string_tab[609] +#define __pyx_n_u_acceleration __pyx_string_tab[610] +#define __pyx_n_u_accelerationinitlong __pyx_string_tab[611] +#define __pyx_n_u_accelerationinitshort __pyx_string_tab[612] +#define __pyx_n_u_accelerationlong __pyx_string_tab[613] +#define __pyx_n_u_accelerationmaxlong __pyx_string_tab[614] +#define __pyx_n_u_accelerationmaxshort __pyx_string_tab[615] +#define __pyx_n_u_accelerationshort __pyx_string_tab[616] +#define __pyx_n_u_all __pyx_string_tab[617] +#define __pyx_n_u_annotate __pyx_string_tab[618] +#define __pyx_n_u_append __pyx_string_tab[619] +#define __pyx_n_u_arg __pyx_string_tab[620] +#define __pyx_n_u_args __pyx_string_tab[621] +#define __pyx_n_u_ascii __pyx_string_tab[622] +#define __pyx_n_u_astype __pyx_string_tab[623] +#define __pyx_n_u_asyncio_coroutines __pyx_string_tab[624] +#define __pyx_n_u_atrperiod __pyx_string_tab[625] +#define __pyx_n_u_avgperiod __pyx_string_tab[626] +#define __pyx_n_u_b __pyx_string_tab[627] +#define __pyx_n_u_begidx __pyx_string_tab[628] +#define __pyx_n_u_bit __pyx_string_tab[629] +#define __pyx_n_u_bytes2str __pyx_string_tab[630] +#define __pyx_n_u_call __pyx_string_tab[631] +#define __pyx_n_u_call_function __pyx_string_tab[632] +#define __pyx_n_u_candlestick __pyx_string_tab[633] +#define __pyx_n_u_check_opt_input_value __pyx_string_tab[634] +#define __pyx_n_u_class_getitem __pyx_string_tab[635] +#define __pyx_n_u_cline_in_traceback __pyx_string_tab[636] +#define __pyx_n_u_clone __pyx_string_tab[637] +#define __pyx_n_u_close __pyx_string_tab[638] +#define __pyx_n_u_close_data __pyx_string_tab[639] +#define __pyx_n_u_collections __pyx_string_tab[640] +#define __pyx_n_u_column_stack __pyx_string_tab[641] +#define __pyx_n_u_columns __pyx_string_tab[642] +#define __pyx_n_u_copy __pyx_string_tab[643] +#define __pyx_n_u_d __pyx_string_tab[644] +#define __pyx_n_u_decode __pyx_string_tab[645] +#define __pyx_n_u_default_value __pyx_string_tab[646] +#define __pyx_n_u_defaults __pyx_string_tab[647] +#define __pyx_n_u_description __pyx_string_tab[648] +#define __pyx_n_u_display_name __pyx_string_tab[649] +#define __pyx_n_u_doc __pyx_string_tab[650] +#define __pyx_n_u_docs __pyx_string_tab[651] +#define __pyx_n_u_documentation __pyx_string_tab[652] +#define __pyx_n_u_empty __pyx_string_tab[653] +#define __pyx_n_u_endidx __pyx_string_tab[654] +#define __pyx_n_u_endswith __pyx_string_tab[655] +#define __pyx_n_u_enumerate __pyx_string_tab[656] +#define __pyx_n_u_factor __pyx_string_tab[657] +#define __pyx_n_u_fastd_matype __pyx_string_tab[658] +#define __pyx_n_u_fastd_period __pyx_string_tab[659] +#define __pyx_n_u_fastk_period __pyx_string_tab[660] +#define __pyx_n_u_fastlimit __pyx_string_tab[661] +#define __pyx_n_u_fastmatype __pyx_string_tab[662] +#define __pyx_n_u_fastperiod __pyx_string_tab[663] +#define __pyx_n_u_firstperiod __pyx_string_tab[664] +#define __pyx_n_u_flag __pyx_string_tab[665] +#define __pyx_n_u_flags __pyx_string_tab[666] +#define __pyx_n_u_flags_lookup_dict __pyx_string_tab[667] +#define __pyx_n_u_func __pyx_string_tab[668] +#define __pyx_n_u_func_args __pyx_string_tab[669] +#define __pyx_n_u_func_info __pyx_string_tab[670] +#define __pyx_n_u_func_line __pyx_string_tab[671] +#define __pyx_n_u_func_object __pyx_string_tab[672] +#define __pyx_n_u_function_flags __pyx_string_tab[673] +#define __pyx_n_u_function_name __pyx_string_tab[674] +#define __pyx_n_u_functions __pyx_string_tab[675] +#define __pyx_n_u_get_defaults_and_docs __pyx_string_tab[676] +#define __pyx_n_u_get_flags __pyx_string_tab[677] +#define __pyx_n_u_get_input_arrays __pyx_string_tab[678] +#define __pyx_n_u_get_input_names __pyx_string_tab[679] +#define __pyx_n_u_get_opt_input_value __pyx_string_tab[680] +#define __pyx_n_u_get_parameters __pyx_string_tab[681] +#define __pyx_n_u_getitem __pyx_string_tab[682] +#define __pyx_n_u_group __pyx_string_tab[683] +#define __pyx_n_u_groups __pyx_string_tab[684] +#define __pyx_n_u_help __pyx_string_tab[685] +#define __pyx_n_u_high __pyx_string_tab[686] +#define __pyx_n_u_high_data __pyx_string_tab[687] +#define __pyx_n_u_holder __pyx_string_tab[688] +#define __pyx_n_u_i __pyx_string_tab[689] +#define __pyx_n_u_id __pyx_string_tab[690] +#define __pyx_n_u_idx __pyx_string_tab[691] +#define __pyx_n_u_import_error __pyx_string_tab[692] +#define __pyx_n_u_in __pyx_string_tab[693] +#define __pyx_n_u_index __pyx_string_tab[694] +#define __pyx_n_u_info __pyx_string_tab[695] +#define __pyx_n_u_init __pyx_string_tab[696] +#define __pyx_n_u_input_arrays __pyx_string_tab[697] +#define __pyx_n_u_input_name __pyx_string_tab[698] +#define __pyx_n_u_input_names __pyx_string_tab[699] +#define __pyx_n_u_input_price_series_names __pyx_string_tab[700] +#define __pyx_n_u_input_price_series_names_2 __pyx_string_tab[701] +#define __pyx_n_u_integer __pyx_string_tab[702] +#define __pyx_n_u_is_coroutine __pyx_string_tab[703] +#define __pyx_n_u_is_empty __pyx_string_tab[704] +#define __pyx_n_u_items __pyx_string_tab[705] +#define __pyx_n_u_key __pyx_string_tab[706] +#define __pyx_n_u_keys __pyx_string_tab[707] +#define __pyx_n_u_kwargs __pyx_string_tab[708] +#define __pyx_n_u_leftbars __pyx_string_tab[709] +#define __pyx_n_u_length __pyx_string_tab[710] +#define __pyx_n_u_local __pyx_string_tab[711] +#define __pyx_n_u_local_2 __pyx_string_tab[712] +#define __pyx_n_u_lookback __pyx_string_tab[713] +#define __pyx_n_u_lookup __pyx_string_tab[714] +#define __pyx_n_u_low __pyx_string_tab[715] +#define __pyx_n_u_low_data __pyx_string_tab[716] +#define __pyx_n_u_lower __pyx_string_tab[717] +#define __pyx_n_u_main __pyx_string_tab[718] +#define __pyx_n_u_matype __pyx_string_tab[719] +#define __pyx_n_u_maximum __pyx_string_tab[720] +#define __pyx_n_u_maxperiod __pyx_string_tab[721] +#define __pyx_n_u_metaclass __pyx_string_tab[722] +#define __pyx_n_u_minperiod __pyx_string_tab[723] +#define __pyx_n_u_missing __pyx_string_tab[724] +#define __pyx_n_u_missing_keys __pyx_string_tab[725] +#define __pyx_n_u_module __pyx_string_tab[726] +#define __pyx_n_u_mro_entries __pyx_string_tab[727] +#define __pyx_n_u_msg __pyx_string_tab[728] +#define __pyx_n_u_multiplier __pyx_string_tab[729] +#define __pyx_n_u_n __pyx_string_tab[730] +#define __pyx_n_u_name __pyx_string_tab[731] +#define __pyx_n_u_name_2 __pyx_string_tab[732] +#define __pyx_n_u_nan __pyx_string_tab[733] +#define __pyx_n_u_nbdev __pyx_string_tab[734] +#define __pyx_n_u_nbdevdn __pyx_string_tab[735] +#define __pyx_n_u_nbdevup __pyx_string_tab[736] +#define __pyx_n_u_no_existing_input_arrays __pyx_string_tab[737] +#define __pyx_n_u_num_inputs __pyx_string_tab[738] +#define __pyx_n_u_num_opt_inputs __pyx_string_tab[739] +#define __pyx_n_u_num_outputs __pyx_string_tab[740] +#define __pyx_n_u_numpy __pyx_string_tab[741] +#define __pyx_n_u_object __pyx_string_tab[742] +#define __pyx_n_u_offsetonreverse __pyx_string_tab[743] +#define __pyx_n_u_open __pyx_string_tab[744] +#define __pyx_n_u_openInterest __pyx_string_tab[745] +#define __pyx_n_u_open_data __pyx_string_tab[746] +#define __pyx_n_u_optIn __pyx_string_tab[747] +#define __pyx_n_u_opt_input __pyx_string_tab[748] +#define __pyx_n_u_opt_input_values __pyx_string_tab[749] +#define __pyx_n_u_opt_inputs __pyx_string_tab[750] +#define __pyx_n_u_ordereddict __pyx_string_tab[751] +#define __pyx_n_u_out __pyx_string_tab[752] +#define __pyx_n_u_outaroondown __pyx_string_tab[753] +#define __pyx_n_u_outaroonup __pyx_string_tab[754] +#define __pyx_n_u_outbearpower __pyx_string_tab[755] +#define __pyx_n_u_outbegidx __pyx_string_tab[756] +#define __pyx_n_u_outbullpower __pyx_string_tab[757] +#define __pyx_n_u_outd __pyx_string_tab[758] +#define __pyx_n_u_outfama __pyx_string_tab[759] +#define __pyx_n_u_outfastd __pyx_string_tab[760] +#define __pyx_n_u_outfastk __pyx_string_tab[761] +#define __pyx_n_u_outhaclose __pyx_string_tab[762] +#define __pyx_n_u_outhahigh __pyx_string_tab[763] +#define __pyx_n_u_outhalow __pyx_string_tab[764] +#define __pyx_n_u_outhaopen __pyx_string_tab[765] +#define __pyx_n_u_outinphase __pyx_string_tab[766] +#define __pyx_n_u_outinteger __pyx_string_tab[767] +#define __pyx_n_u_outinteger_data __pyx_string_tab[768] +#define __pyx_n_u_outj __pyx_string_tab[769] +#define __pyx_n_u_outk __pyx_string_tab[770] +#define __pyx_n_u_outleadsine __pyx_string_tab[771] +#define __pyx_n_u_outmacd __pyx_string_tab[772] +#define __pyx_n_u_outmacdhist __pyx_string_tab[773] +#define __pyx_n_u_outmacdsignal __pyx_string_tab[774] +#define __pyx_n_u_outmama __pyx_string_tab[775] +#define __pyx_n_u_outmax __pyx_string_tab[776] +#define __pyx_n_u_outmaxidx __pyx_string_tab[777] +#define __pyx_n_u_outmaxidx_data __pyx_string_tab[778] +#define __pyx_n_u_outmin __pyx_string_tab[779] +#define __pyx_n_u_outminidx __pyx_string_tab[780] +#define __pyx_n_u_outminidx_data __pyx_string_tab[781] +#define __pyx_n_u_outminusvi __pyx_string_tab[782] +#define __pyx_n_u_outnbelement __pyx_string_tab[783] +#define __pyx_n_u_outplusvi __pyx_string_tab[784] +#define __pyx_n_u_output __pyx_string_tab[785] +#define __pyx_n_u_output_flags __pyx_string_tab[786] +#define __pyx_n_u_output_name __pyx_string_tab[787] +#define __pyx_n_u_output_names __pyx_string_tab[788] +#define __pyx_n_u_outputs __pyx_string_tab[789] +#define __pyx_n_u_outputs_valid __pyx_string_tab[790] +#define __pyx_n_u_outquadrature __pyx_string_tab[791] +#define __pyx_n_u_outreal __pyx_string_tab[792] +#define __pyx_n_u_outreallowerband __pyx_string_tab[793] +#define __pyx_n_u_outrealmiddleband __pyx_string_tab[794] +#define __pyx_n_u_outrealupperband __pyx_string_tab[795] +#define __pyx_n_u_outsine __pyx_string_tab[796] +#define __pyx_n_u_outslowd __pyx_string_tab[797] +#define __pyx_n_u_outslowk __pyx_string_tab[798] +#define __pyx_n_u_outsmi __pyx_string_tab[799] +#define __pyx_n_u_outsmisignal __pyx_string_tab[800] +#define __pyx_n_u_outswinghigh __pyx_string_tab[801] +#define __pyx_n_u_outswinglow __pyx_string_tab[802] +#define __pyx_n_u_pandas __pyx_string_tab[803] +#define __pyx_n_u_param __pyx_string_tab[804] +#define __pyx_n_u_param_name __pyx_string_tab[805] +#define __pyx_n_u_parameters __pyx_string_tab[806] +#define __pyx_n_u_params __pyx_string_tab[807] +#define __pyx_n_u_penetration __pyx_string_tab[808] +#define __pyx_n_u_percentile __pyx_string_tab[809] +#define __pyx_n_u_period __pyx_string_tab[810] +#define __pyx_n_u_periods __pyx_string_tab[811] +#define __pyx_n_u_periods_data __pyx_string_tab[812] +#define __pyx_n_u_polars __pyx_string_tab[813] +#define __pyx_n_u_pop __pyx_string_tab[814] +#define __pyx_n_u_prepare __pyx_string_tab[815] +#define __pyx_n_u_price __pyx_string_tab[816] +#define __pyx_n_u_price0 __pyx_string_tab[817] +#define __pyx_n_u_price1 __pyx_string_tab[818] +#define __pyx_n_u_price_series __pyx_string_tab[819] +#define __pyx_n_u_price_series_name_values __pyx_string_tab[820] +#define __pyx_n_u_prices __pyx_string_tab[821] +#define __pyx_n_u_property __pyx_string_tab[822] +#define __pyx_n_u_qualname __pyx_string_tab[823] +#define __pyx_n_u_rangetype __pyx_string_tab[824] +#define __pyx_n_u_real __pyx_string_tab[825] +#define __pyx_n_u_real0 __pyx_string_tab[826] +#define __pyx_n_u_real0_data __pyx_string_tab[827] +#define __pyx_n_u_real1 __pyx_string_tab[828] +#define __pyx_n_u_real1_data __pyx_string_tab[829] +#define __pyx_n_u_real_data __pyx_string_tab[830] +#define __pyx_n_u_replace __pyx_string_tab[831] +#define __pyx_n_u_repr __pyx_string_tab[832] +#define __pyx_n_u_results __pyx_string_tab[833] +#define __pyx_n_u_ret __pyx_string_tab[834] +#define __pyx_n_u_retCode __pyx_string_tab[835] +#define __pyx_n_u_ret_code __pyx_string_tab[836] +#define __pyx_n_u_rightbars __pyx_string_tab[837] +#define __pyx_n_u_roc1period __pyx_string_tab[838] +#define __pyx_n_u_roc2period __pyx_string_tab[839] +#define __pyx_n_u_rocperiod __pyx_string_tab[840] +#define __pyx_n_u_run __pyx_string_tab[841] +#define __pyx_n_u_s __pyx_string_tab[842] +#define __pyx_n_u_schema __pyx_string_tab[843] +#define __pyx_n_u_secondperiod __pyx_string_tab[844] +#define __pyx_n_u_self __pyx_string_tab[845] +#define __pyx_n_u_series __pyx_string_tab[846] +#define __pyx_n_u_set_function_args __pyx_string_tab[847] +#define __pyx_n_u_set_input_arrays __pyx_string_tab[848] +#define __pyx_n_u_set_input_names __pyx_string_tab[849] +#define __pyx_n_u_set_name __pyx_string_tab[850] +#define __pyx_n_u_set_parameters __pyx_string_tab[851] +#define __pyx_n_u_setdefault __pyx_string_tab[852] +#define __pyx_n_u_settingtype __pyx_string_tab[853] +#define __pyx_n_u_signalmatype __pyx_string_tab[854] +#define __pyx_n_u_signalperiod __pyx_string_tab[855] +#define __pyx_n_u_skip_first __pyx_string_tab[856] +#define __pyx_n_u_slowd_matype __pyx_string_tab[857] +#define __pyx_n_u_slowd_period __pyx_string_tab[858] +#define __pyx_n_u_slowk_matype __pyx_string_tab[859] +#define __pyx_n_u_slowk_period __pyx_string_tab[860] +#define __pyx_n_u_slowlimit __pyx_string_tab[861] +#define __pyx_n_u_slowmatype __pyx_string_tab[862] +#define __pyx_n_u_slowperiod __pyx_string_tab[863] +#define __pyx_n_u_stacklevel __pyx_string_tab[864] +#define __pyx_n_u_startvalue __pyx_string_tab[865] +#define __pyx_n_u_stddevperiod __pyx_string_tab[866] +#define __pyx_n_u_str __pyx_string_tab[867] +#define __pyx_n_u_str2bytes __pyx_string_tab[868] +#define __pyx_n_u_stream_AC __pyx_string_tab[869] +#define __pyx_n_u_stream_ACCBANDS __pyx_string_tab[870] +#define __pyx_n_u_stream_ACOS __pyx_string_tab[871] +#define __pyx_n_u_stream_AD __pyx_string_tab[872] +#define __pyx_n_u_stream_ADD __pyx_string_tab[873] +#define __pyx_n_u_stream_ADOSC __pyx_string_tab[874] +#define __pyx_n_u_stream_ADR __pyx_string_tab[875] +#define __pyx_n_u_stream_ADX __pyx_string_tab[876] +#define __pyx_n_u_stream_ADXR __pyx_string_tab[877] +#define __pyx_n_u_stream_AO __pyx_string_tab[878] +#define __pyx_n_u_stream_APO __pyx_string_tab[879] +#define __pyx_n_u_stream_AROON __pyx_string_tab[880] +#define __pyx_n_u_stream_AROONOSC __pyx_string_tab[881] +#define __pyx_n_u_stream_ASIN __pyx_string_tab[882] +#define __pyx_n_u_stream_ATAN __pyx_string_tab[883] +#define __pyx_n_u_stream_ATR __pyx_string_tab[884] +#define __pyx_n_u_stream_AVGDEV __pyx_string_tab[885] +#define __pyx_n_u_stream_AVGPRICE __pyx_string_tab[886] +#define __pyx_n_u_stream_BBANDS __pyx_string_tab[887] +#define __pyx_n_u_stream_BETA __pyx_string_tab[888] +#define __pyx_n_u_stream_BOP __pyx_string_tab[889] +#define __pyx_n_u_stream_CCI __pyx_string_tab[890] +#define __pyx_n_u_stream_CDL2CROWS __pyx_string_tab[891] +#define __pyx_n_u_stream_CDL3BLACKCROWS __pyx_string_tab[892] +#define __pyx_n_u_stream_CDL3INSIDE __pyx_string_tab[893] +#define __pyx_n_u_stream_CDL3LINESTRIKE __pyx_string_tab[894] +#define __pyx_n_u_stream_CDL3OUTSIDE __pyx_string_tab[895] +#define __pyx_n_u_stream_CDL3STARSINSOUTH __pyx_string_tab[896] +#define __pyx_n_u_stream_CDL3WHITESOLDIERS __pyx_string_tab[897] +#define __pyx_n_u_stream_CDLABANDONEDBABY __pyx_string_tab[898] +#define __pyx_n_u_stream_CDLADVANCEBLOCK __pyx_string_tab[899] +#define __pyx_n_u_stream_CDLBELTHOLD __pyx_string_tab[900] +#define __pyx_n_u_stream_CDLBREAKAWAY __pyx_string_tab[901] +#define __pyx_n_u_stream_CDLCLOSINGMARUBOZU __pyx_string_tab[902] +#define __pyx_n_u_stream_CDLCONCEALBABYSWALL __pyx_string_tab[903] +#define __pyx_n_u_stream_CDLCOUNTERATTACK __pyx_string_tab[904] +#define __pyx_n_u_stream_CDLDARKCLOUDCOVER __pyx_string_tab[905] +#define __pyx_n_u_stream_CDLDOJI __pyx_string_tab[906] +#define __pyx_n_u_stream_CDLDOJISTAR __pyx_string_tab[907] +#define __pyx_n_u_stream_CDLDRAGONFLYDOJI __pyx_string_tab[908] +#define __pyx_n_u_stream_CDLENGULFING __pyx_string_tab[909] +#define __pyx_n_u_stream_CDLEVENINGDOJISTAR __pyx_string_tab[910] +#define __pyx_n_u_stream_CDLEVENINGSTAR __pyx_string_tab[911] +#define __pyx_n_u_stream_CDLGAPSIDESIDEWHITE __pyx_string_tab[912] +#define __pyx_n_u_stream_CDLGRAVESTONEDOJI __pyx_string_tab[913] +#define __pyx_n_u_stream_CDLHAMMER __pyx_string_tab[914] +#define __pyx_n_u_stream_CDLHANGINGMAN __pyx_string_tab[915] +#define __pyx_n_u_stream_CDLHARAMI __pyx_string_tab[916] +#define __pyx_n_u_stream_CDLHARAMICROSS __pyx_string_tab[917] +#define __pyx_n_u_stream_CDLHIGHWAVE __pyx_string_tab[918] +#define __pyx_n_u_stream_CDLHIKKAKE __pyx_string_tab[919] +#define __pyx_n_u_stream_CDLHIKKAKEMOD __pyx_string_tab[920] +#define __pyx_n_u_stream_CDLHOMINGPIGEON __pyx_string_tab[921] +#define __pyx_n_u_stream_CDLIDENTICAL3CROWS __pyx_string_tab[922] +#define __pyx_n_u_stream_CDLINNECK __pyx_string_tab[923] +#define __pyx_n_u_stream_CDLINVERTEDHAMMER __pyx_string_tab[924] +#define __pyx_n_u_stream_CDLKICKING __pyx_string_tab[925] +#define __pyx_n_u_stream_CDLKICKINGBYLENGTH __pyx_string_tab[926] +#define __pyx_n_u_stream_CDLLADDERBOTTOM __pyx_string_tab[927] +#define __pyx_n_u_stream_CDLLONGLEGGEDDOJI __pyx_string_tab[928] +#define __pyx_n_u_stream_CDLLONGLINE __pyx_string_tab[929] +#define __pyx_n_u_stream_CDLMARUBOZU __pyx_string_tab[930] +#define __pyx_n_u_stream_CDLMATCHINGLOW __pyx_string_tab[931] +#define __pyx_n_u_stream_CDLMATHOLD __pyx_string_tab[932] +#define __pyx_n_u_stream_CDLMORNINGDOJISTAR __pyx_string_tab[933] +#define __pyx_n_u_stream_CDLMORNINGSTAR __pyx_string_tab[934] +#define __pyx_n_u_stream_CDLONNECK __pyx_string_tab[935] +#define __pyx_n_u_stream_CDLPIERCING __pyx_string_tab[936] +#define __pyx_n_u_stream_CDLRICKSHAWMAN __pyx_string_tab[937] +#define __pyx_n_u_stream_CDLRISEFALL3METHODS __pyx_string_tab[938] +#define __pyx_n_u_stream_CDLSEPARATINGLINES __pyx_string_tab[939] +#define __pyx_n_u_stream_CDLSHOOTINGSTAR __pyx_string_tab[940] +#define __pyx_n_u_stream_CDLSHORTLINE __pyx_string_tab[941] +#define __pyx_n_u_stream_CDLSPINNINGTOP __pyx_string_tab[942] +#define __pyx_n_u_stream_CDLSTALLEDPATTERN __pyx_string_tab[943] +#define __pyx_n_u_stream_CDLSTICKSANDWICH __pyx_string_tab[944] +#define __pyx_n_u_stream_CDLTAKURI __pyx_string_tab[945] +#define __pyx_n_u_stream_CDLTASUKIGAP __pyx_string_tab[946] +#define __pyx_n_u_stream_CDLTHRUSTING __pyx_string_tab[947] +#define __pyx_n_u_stream_CDLTRISTAR __pyx_string_tab[948] +#define __pyx_n_u_stream_CDLUNIQUE3RIVER __pyx_string_tab[949] +#define __pyx_n_u_stream_CDLUPSIDEGAP2CROWS __pyx_string_tab[950] +#define __pyx_n_u_stream_CDLXSIDEGAP3METHODS __pyx_string_tab[951] +#define __pyx_n_u_stream_CEIL __pyx_string_tab[952] +#define __pyx_n_u_stream_CMF __pyx_string_tab[953] +#define __pyx_n_u_stream_CMO __pyx_string_tab[954] +#define __pyx_n_u_stream_CMOU __pyx_string_tab[955] +#define __pyx_n_u_stream_COPPOCK __pyx_string_tab[956] +#define __pyx_n_u_stream_CORREL __pyx_string_tab[957] +#define __pyx_n_u_stream_COS __pyx_string_tab[958] +#define __pyx_n_u_stream_COSH __pyx_string_tab[959] +#define __pyx_n_u_stream_CUMSUM __pyx_string_tab[960] +#define __pyx_n_u_stream_CVI __pyx_string_tab[961] +#define __pyx_n_u_stream_DEMA __pyx_string_tab[962] +#define __pyx_n_u_stream_DIV __pyx_string_tab[963] +#define __pyx_n_u_stream_DONCHIAN __pyx_string_tab[964] +#define __pyx_n_u_stream_DPO __pyx_string_tab[965] +#define __pyx_n_u_stream_DX __pyx_string_tab[966] +#define __pyx_n_u_stream_EFI __pyx_string_tab[967] +#define __pyx_n_u_stream_EMA __pyx_string_tab[968] +#define __pyx_n_u_stream_ER __pyx_string_tab[969] +#define __pyx_n_u_stream_ERI __pyx_string_tab[970] +#define __pyx_n_u_stream_EXP __pyx_string_tab[971] +#define __pyx_n_u_stream_FLOOR __pyx_string_tab[972] +#define __pyx_n_u_stream_FOSC __pyx_string_tab[973] +#define __pyx_n_u_stream_FRACTAL __pyx_string_tab[974] +#define __pyx_n_u_stream_HA __pyx_string_tab[975] +#define __pyx_n_u_stream_HMA __pyx_string_tab[976] +#define __pyx_n_u_stream_HT_DCPERIOD __pyx_string_tab[977] +#define __pyx_n_u_stream_HT_DCPHASE __pyx_string_tab[978] +#define __pyx_n_u_stream_HT_PHASOR __pyx_string_tab[979] +#define __pyx_n_u_stream_HT_SINE __pyx_string_tab[980] +#define __pyx_n_u_stream_HT_TRENDLINE __pyx_string_tab[981] +#define __pyx_n_u_stream_HT_TRENDMODE __pyx_string_tab[982] +#define __pyx_n_u_stream_IMI __pyx_string_tab[983] +#define __pyx_n_u_stream_KAMA __pyx_string_tab[984] +#define __pyx_n_u_stream_KC __pyx_string_tab[985] +#define __pyx_n_u_stream_KDJ __pyx_string_tab[986] +#define __pyx_n_u_stream_LINEARREG __pyx_string_tab[987] +#define __pyx_n_u_stream_LINEARREG_ANGLE __pyx_string_tab[988] +#define __pyx_n_u_stream_LINEARREG_INTERCEPT __pyx_string_tab[989] +#define __pyx_n_u_stream_LINEARREG_SLOPE __pyx_string_tab[990] +#define __pyx_n_u_stream_LN __pyx_string_tab[991] +#define __pyx_n_u_stream_LOG10 __pyx_string_tab[992] +#define __pyx_n_u_stream_MA __pyx_string_tab[993] +#define __pyx_n_u_stream_MACD __pyx_string_tab[994] +#define __pyx_n_u_stream_MACDEXT __pyx_string_tab[995] +#define __pyx_n_u_stream_MACDFIX __pyx_string_tab[996] +#define __pyx_n_u_stream_MAMA __pyx_string_tab[997] +#define __pyx_n_u_stream_MARKETFI __pyx_string_tab[998] +#define __pyx_n_u_stream_MASSI __pyx_string_tab[999] +#define __pyx_n_u_stream_MAVP __pyx_string_tab[1000] +#define __pyx_n_u_stream_MAX __pyx_string_tab[1001] +#define __pyx_n_u_stream_MAXINDEX __pyx_string_tab[1002] +#define __pyx_n_u_stream_MEDPRICE __pyx_string_tab[1003] +#define __pyx_n_u_stream_MFI __pyx_string_tab[1004] +#define __pyx_n_u_stream_MIDPOINT __pyx_string_tab[1005] +#define __pyx_n_u_stream_MIDPRICE __pyx_string_tab[1006] +#define __pyx_n_u_stream_MIN __pyx_string_tab[1007] +#define __pyx_n_u_stream_MININDEX __pyx_string_tab[1008] +#define __pyx_n_u_stream_MINMAX __pyx_string_tab[1009] +#define __pyx_n_u_stream_MINMAXINDEX __pyx_string_tab[1010] +#define __pyx_n_u_stream_MINUS_DI __pyx_string_tab[1011] +#define __pyx_n_u_stream_MINUS_DM __pyx_string_tab[1012] +#define __pyx_n_u_stream_MOM __pyx_string_tab[1013] +#define __pyx_n_u_stream_MULT __pyx_string_tab[1014] +#define __pyx_n_u_stream_NATR __pyx_string_tab[1015] +#define __pyx_n_u_stream_NVI __pyx_string_tab[1016] +#define __pyx_n_u_stream_OBV __pyx_string_tab[1017] +#define __pyx_n_u_stream_PERCENTILE __pyx_string_tab[1018] +#define __pyx_n_u_stream_PERCENTRANK __pyx_string_tab[1019] +#define __pyx_n_u_stream_PLUS_DI __pyx_string_tab[1020] +#define __pyx_n_u_stream_PLUS_DM __pyx_string_tab[1021] +#define __pyx_n_u_stream_PPO __pyx_string_tab[1022] +#define __pyx_n_u_stream_PVI __pyx_string_tab[1023] +#define __pyx_n_u_stream_PVO __pyx_string_tab[1024] +#define __pyx_n_u_stream_PVT __pyx_string_tab[1025] +#define __pyx_n_u_stream_QSTICK __pyx_string_tab[1026] +#define __pyx_n_u_stream_RMA __pyx_string_tab[1027] +#define __pyx_n_u_stream_ROC __pyx_string_tab[1028] +#define __pyx_n_u_stream_ROCP __pyx_string_tab[1029] +#define __pyx_n_u_stream_ROCR __pyx_string_tab[1030] +#define __pyx_n_u_stream_ROCR100 __pyx_string_tab[1031] +#define __pyx_n_u_stream_RSI __pyx_string_tab[1032] +#define __pyx_n_u_stream_RVI __pyx_string_tab[1033] +#define __pyx_n_u_stream_RVOL __pyx_string_tab[1034] +#define __pyx_n_u_stream_SAR __pyx_string_tab[1035] +#define __pyx_n_u_stream_SAREXT __pyx_string_tab[1036] +#define __pyx_n_u_stream_SIN __pyx_string_tab[1037] +#define __pyx_n_u_stream_SINH __pyx_string_tab[1038] +#define __pyx_n_u_stream_SMA __pyx_string_tab[1039] +#define __pyx_n_u_stream_SMI __pyx_string_tab[1040] +#define __pyx_n_u_stream_SQRT __pyx_string_tab[1041] +#define __pyx_n_u_stream_STDDEV __pyx_string_tab[1042] +#define __pyx_n_u_stream_STOCH __pyx_string_tab[1043] +#define __pyx_n_u_stream_STOCHF __pyx_string_tab[1044] +#define __pyx_n_u_stream_STOCHRSI __pyx_string_tab[1045] +#define __pyx_n_u_stream_SUB __pyx_string_tab[1046] +#define __pyx_n_u_stream_SUM __pyx_string_tab[1047] +#define __pyx_n_u_stream_SUPERTREND __pyx_string_tab[1048] +#define __pyx_n_u_stream_T3 __pyx_string_tab[1049] +#define __pyx_n_u_stream_TAN __pyx_string_tab[1050] +#define __pyx_n_u_stream_TANH __pyx_string_tab[1051] +#define __pyx_n_u_stream_TEMA __pyx_string_tab[1052] +#define __pyx_n_u_stream_TRANGE __pyx_string_tab[1053] +#define __pyx_n_u_stream_TRIMA __pyx_string_tab[1054] +#define __pyx_n_u_stream_TRIX __pyx_string_tab[1055] +#define __pyx_n_u_stream_TSF __pyx_string_tab[1056] +#define __pyx_n_u_stream_TSI __pyx_string_tab[1057] +#define __pyx_n_u_stream_TYPPRICE __pyx_string_tab[1058] +#define __pyx_n_u_stream_ULTOSC __pyx_string_tab[1059] +#define __pyx_n_u_stream_VAR __pyx_string_tab[1060] +#define __pyx_n_u_stream_VHF __pyx_string_tab[1061] +#define __pyx_n_u_stream_VORTEX __pyx_string_tab[1062] +#define __pyx_n_u_stream_VWAP __pyx_string_tab[1063] +#define __pyx_n_u_stream_VWMA __pyx_string_tab[1064] +#define __pyx_n_u_stream_WAD __pyx_string_tab[1065] +#define __pyx_n_u_stream_WCLPRICE __pyx_string_tab[1066] +#define __pyx_n_u_stream_WILLR __pyx_string_tab[1067] +#define __pyx_n_u_stream_WMA __pyx_string_tab[1068] +#define __pyx_n_u_stream_ZLEMA __pyx_string_tab[1069] +#define __pyx_n_u_sys __pyx_string_tab[1070] +#define __pyx_n_u_ta_check_success __pyx_string_tab[1071] +#define __pyx_n_u_ta_func_unst_id __pyx_string_tab[1072] +#define __pyx_n_u_ta_func_unst_ids __pyx_string_tab[1073] +#define __pyx_n_u_ta_func_unst_retired __pyx_string_tab[1074] +#define __pyx_n_u_ta_getFuncInfo __pyx_string_tab[1075] +#define __pyx_n_u_ta_getFuncTable __pyx_string_tab[1076] +#define __pyx_n_u_ta_getGroupTable __pyx_string_tab[1077] +#define __pyx_n_u_ta_getInputParameterInfo __pyx_string_tab[1078] +#define __pyx_n_u_ta_getOptInputParameterInfo __pyx_string_tab[1079] +#define __pyx_n_u_ta_getOutputParameterInfo __pyx_string_tab[1080] +#define __pyx_n_u_ta_get_compatibility __pyx_string_tab[1081] +#define __pyx_n_u_ta_get_unstable_period __pyx_string_tab[1082] +#define __pyx_n_u_ta_initialize __pyx_string_tab[1083] +#define __pyx_n_u_ta_restore_candle_default_setti __pyx_string_tab[1084] +#define __pyx_n_u_ta_set_candle_settings __pyx_string_tab[1085] +#define __pyx_n_u_ta_set_compatibility __pyx_string_tab[1086] +#define __pyx_n_u_ta_set_unstable_period __pyx_string_tab[1087] +#define __pyx_n_u_ta_shutdown __pyx_string_tab[1088] +#define __pyx_n_u_ta_version __pyx_string_tab[1089] +#define __pyx_n_u_table __pyx_string_tab[1090] +#define __pyx_n_u_talib__ta_lib __pyx_string_tab[1091] +#define __pyx_n_u_test __pyx_string_tab[1092] +#define __pyx_n_u_threading __pyx_string_tab[1093] +#define __pyx_n_u_timeStamp __pyx_string_tab[1094] +#define __pyx_n_u_timeperiod __pyx_string_tab[1095] +#define __pyx_n_u_timeperiod1 __pyx_string_tab[1096] +#define __pyx_n_u_timeperiod2 __pyx_string_tab[1097] +#define __pyx_n_u_timeperiod3 __pyx_string_tab[1098] +#define __pyx_n_u_to_numpy __pyx_string_tab[1099] +#define __pyx_n_u_type __pyx_string_tab[1100] +#define __pyx_n_u_type_2 __pyx_string_tab[1101] +#define __pyx_n_u_unicode __pyx_string_tab[1102] +#define __pyx_n_u_unst_id __pyx_string_tab[1103] +#define __pyx_n_u_update __pyx_string_tab[1104] +#define __pyx_n_u_update_info __pyx_string_tab[1105] +#define __pyx_n_u_upper __pyx_string_tab[1106] +#define __pyx_n_u_value __pyx_string_tab[1107] +#define __pyx_n_u_values __pyx_string_tab[1108] +#define __pyx_n_u_version __pyx_string_tab[1109] +#define __pyx_n_u_vfactor __pyx_string_tab[1110] +#define __pyx_n_u_volume __pyx_string_tab[1111] +#define __pyx_n_u_volume_data __pyx_string_tab[1112] +#define __pyx_n_u_warn __pyx_string_tab[1113] +#define __pyx_n_u_warnings __pyx_string_tab[1114] +#define __pyx_n_u_wmaperiod __pyx_string_tab[1115] +#define __pyx_kp_b_iso88591_01_aq_Q_T_q_RvXRt6_4_S_aammnn_Q __pyx_string_tab[1116] +#define __pyx_kp_b_iso88591_01_aq_Q_T_q_a_RvXRt6_4_S_aammnn __pyx_string_tab[1117] +#define __pyx_kp_b_iso88591_01_aq_T_q_8_T_U_7_A_we_7r_q_Bd __pyx_string_tab[1118] +#define __pyx_kp_b_iso88591_0HHbb_0_aq_Q_T_q_q_q_RvXRt6_4_S __pyx_string_tab[1119] +#define __pyx_kp_b_iso88591_0_aq_Q_T_q_a_A_BfHBd_lRaabbnnoo __pyx_string_tab[1120] +#define __pyx_kp_b_iso88591_0_aq_Q_T_q_a_BfHBd_lR___llmm_Qn __pyx_string_tab[1121] +#define __pyx_kp_b_iso88591_12_aq_Q_T_q_a_b_hb_F_D_Taabbnno __pyx_string_tab[1122] +#define __pyx_kp_b_iso88591_1_1 __pyx_string_tab[1123] +#define __pyx_kp_b_iso88591_1_a_OuTUUV_Q_31_9AT_4q_1HF_wc_d __pyx_string_tab[1124] +#define __pyx_kp_b_iso88591_1_aq_T_q_8_T_U_7_A_we_M_q_r_Yk __pyx_string_tab[1125] +#define __pyx_kp_b_iso88591_1_aq_T_q_8_T_U_7_A_we_M_q_r_Yk_2 __pyx_string_tab[1126] +#define __pyx_kp_b_iso88591_2J_aq_Q_T_q_a_r_xr_V82T_Ubboopp __pyx_string_tab[1127] +#define __pyx_kp_b_iso88591_2_1_Q_9 __pyx_string_tab[1128] +#define __pyx_kp_b_iso88591_2_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddn __pyx_string_tab[1129] +#define __pyx_kp_b_iso88591_314DAQ_Q_a_4q_a_Qd_c_a_Qd_s_4q __pyx_string_tab[1130] +#define __pyx_kp_b_iso88591_34_aq_Q_T_q_a_fHBd_Vccddppq_r_A __pyx_string_tab[1131] +#define __pyx_kp_b_iso88591_34_aq_Q_T_q_fHBd_Vccddppq_r_A_A __pyx_string_tab[1132] +#define __pyx_kp_b_iso88591_45_aq_T_q_8_T_U_7_A_we_2Q_q_i_f __pyx_string_tab[1133] +#define __pyx_kp_b_iso88591_6_V6_a_6_4vXRt_Q___kkll_Qk_1 __pyx_string_tab[1134] +#define __pyx_kp_b_iso88591_78_aq_Q_T_q_a_BfHBd_lZgghhttu_v __pyx_string_tab[1135] +#define __pyx_kp_b_iso88591_8_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_q __pyx_string_tab[1136] +#define __pyx_kp_b_iso88591_A2_A_QnA_1_t_6a_gQ_d_Q_d_1_q_s_A __pyx_string_tab[1137] +#define __pyx_kp_b_iso88591_AA_uuv0_aq_T_q_8_T_U_7_A_we_0_o __pyx_string_tab[1138] +#define __pyx_kp_b_iso88591_A_A_1_N_q_5_A_z_HA_G1A_q_q __pyx_string_tab[1139] +#define __pyx_kp_b_iso88591_A_A_2_k_Qa_e_e1_2S_AQ_U_t1A_q_4 __pyx_string_tab[1140] +#define __pyx_kp_b_iso88591_A_A_4_B_q_A_U_q_we1_axq_wgQa_Q_a __pyx_string_tab[1141] +#define __pyx_kp_b_iso88591_A_A_4uA_e87_4z_q_aq_gU_5_q_E_a_s __pyx_string_tab[1142] +#define __pyx_kp_b_iso88591_A_A_4wawa_1_Kq_Q_V1E_d_1_0_Ya_T __pyx_string_tab[1143] +#define __pyx_kp_b_iso88591_A_A_6_6_6_7_7_81_7_7_5_6_a_Q_81 __pyx_string_tab[1144] +#define __pyx_kp_b_iso88591_A_A_AQ_6_A_E_A_q __pyx_string_tab[1145] +#define __pyx_kp_b_iso88591_A_A_L_6_Qk_A_a_QnA_a __pyx_string_tab[1146] +#define __pyx_kp_b_iso88591_A_A_a_G1_t3e1_aq_4_q_Q_AT_V1A_S __pyx_string_tab[1147] +#define __pyx_kp_b_iso88591_A_A_at1_C_IQe1_D_aq_E_AZq_vV_2_V __pyx_string_tab[1148] +#define __pyx_kp_b_iso88591_A_A_gQ_5_q_5_V1_5_U __pyx_string_tab[1149] +#define __pyx_kp_b_iso88591_A_A_k_M_a_q_T_7q_q __pyx_string_tab[1150] +#define __pyx_kp_b_iso88591_A_A_k_N_q_q_e_q_1A_q __pyx_string_tab[1151] +#define __pyx_kp_b_iso88591_A_B_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d __pyx_string_tab[1152] +#define __pyx_kp_b_iso88591_A_HKq_1A_6_5Q_A_7_4A_A_QgQ_7_1_A __pyx_string_tab[1153] +#define __pyx_kp_b_iso88591_A_Jm6_M_Q_Jiq_A_O9F_b_O1 __pyx_string_tab[1154] +#define __pyx_kp_b_iso88591_A_Qd __pyx_string_tab[1155] +#define __pyx_kp_b_iso88591_A_Y_Y_Z_aq_Q_Qa_y_1_Kq_q_6_6_gQ __pyx_string_tab[1156] +#define __pyx_kp_b_iso88591_A_aq_Kq_6_8_T_5_U_7_A_we_2Q_q_i __pyx_string_tab[1157] +#define __pyx_kp_b_iso88591_A_aq_Qa_6_8_T_3a_U_7_A_we_Rq_AX __pyx_string_tab[1158] +#define __pyx_kp_b_iso88591_A_aq_T_q_8_T_U_7_A_we_2_q_i_fAY __pyx_string_tab[1159] +#define __pyx_kp_b_iso88591_A_aq_T_q_8_T_U_7_A_we_2_q_i_fAY_2 __pyx_string_tab[1160] +#define __pyx_kp_b_iso88591_A_d_q_4z_q_aq_q __pyx_string_tab[1161] +#define __pyx_kp_b_iso88591_A_q __pyx_string_tab[1162] +#define __pyx_kp_b_iso88591_A_q_q __pyx_string_tab[1163] +#define __pyx_kp_b_iso88591_A_t81A __pyx_string_tab[1164] +#define __pyx_kp_b_iso88591_A_t85 __pyx_string_tab[1165] +#define __pyx_kp_b_iso88591_A_t85_Q __pyx_string_tab[1166] +#define __pyx_kp_b_iso88591_A_t85_Q_2 __pyx_string_tab[1167] +#define __pyx_kp_b_iso88591_A_uAS __pyx_string_tab[1168] +#define __pyx_kp_b_iso88591_A_uBd __pyx_string_tab[1169] +#define __pyx_kp_b_iso88591_A_wat81 __pyx_string_tab[1170] +#define __pyx_kp_b_iso88591_A_z_____b_b_G_G_h_h_i_4_aq_Qa_6 __pyx_string_tab[1171] +#define __pyx_kp_b_iso88591_BC_Kq_7_8_U_F_U_7_A_we_2Q_q_i_v __pyx_string_tab[1172] +#define __pyx_kp_b_iso88591_BC_Kq_Kq_7_8_U_E_U_7_A_we_Ba_q __pyx_string_tab[1173] +#define __pyx_kp_b_iso88591_BC_aq_6_8_T_6_U_7_A_we_Ba_q_4y __pyx_string_tab[1174] +#define __pyx_kp_b_iso88591_BC_aq_Qa_6_8_T_3a_U_7_A_we_r_q __pyx_string_tab[1175] +#define __pyx_kp_b_iso88591_BXXY_aq_Qa_6_8_T_3a_U_7_A_we_r __pyx_string_tab[1176] +#define __pyx_kp_b_iso88591_B_aq_Q_T_q_a_r_xr_V82T_Zccddppq __pyx_string_tab[1177] +#define __pyx_kp_b_iso88591_B_aq_Q_T_q_a_r_xr_V82T_Zddeeqqr __pyx_string_tab[1178] +#define __pyx_kp_b_iso88591_C1_aq_Q_T_q_a_fHBd_m_ccddppq_r __pyx_string_tab[1179] +#define __pyx_kp_b_iso88591_C1_aq_Q_T_q_a_fHBd_m_jjkkwwx_y __pyx_string_tab[1180] +#define __pyx_kp_b_iso88591_C1_aq_T_q_8_T_U_7_A_we_2_M_q_r __pyx_string_tab[1181] +#define __pyx_kp_b_iso88591_CC_aq_Q_T_q_a_fHBd_m_hhqqrr_O_O __pyx_string_tab[1182] +#define __pyx_kp_b_iso88591_CD_aq_Kq_6_8_T_5_U_7_A_we_b_q_2 __pyx_string_tab[1183] +#define __pyx_kp_b_iso88591_CD_aq_Qa_6_8_T_3a_U_7_A_we_0_Rt __pyx_string_tab[1184] +#define __pyx_kp_b_iso88591_CD_aq_Qa_6_8_T_3a_U_7_A_we_0_q __pyx_string_tab[1185] +#define __pyx_kp_b_iso88591_CZZqqr_aq_k_6_8_T_7_U_7_A_we_Bl __pyx_string_tab[1186] +#define __pyx_kp_b_iso88591_C_D_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d __pyx_string_tab[1187] +#define __pyx_kp_b_iso88591_DA_aq_Q_T_q_a_fHBd_n_kkllxxy_z __pyx_string_tab[1188] +#define __pyx_kp_b_iso88591_DD_2_aq_Q_T_q_a_A_6_4vXRt_iixxy __pyx_string_tab[1189] +#define __pyx_kp_b_iso88591_DE_Kq_Kq_7_8_U_E_U_7_A_we_b_q_2 __pyx_string_tab[1190] +#define __pyx_kp_b_iso88591_D_E_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA __pyx_string_tab[1191] +#define __pyx_kp_b_iso88591_D_E_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d __pyx_string_tab[1192] +#define __pyx_kp_b_iso88591_D_aq_Q_Qa_y_1_6_a_r_xr_V82T_Xee __pyx_string_tab[1193] +#define __pyx_kp_b_iso88591_D_ttu_aq_Q_Qa_y_1_6_a_r_xr_V82T __pyx_string_tab[1194] +#define __pyx_kp_b_iso88591_EE_6_V6_a_fHBd_P_jjsst_u_A_A_B __pyx_string_tab[1195] +#define __pyx_kp_b_iso88591_EF_aq_Q_Qa_y_1_6_a_fHBd_kYffggs __pyx_string_tab[1196] +#define __pyx_kp_b_iso88591_EQ_aq_Q_T_q_a_a_6_4vXRt_gghhttu __pyx_string_tab[1197] +#define __pyx_kp_b_iso88591_E_F_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d __pyx_string_tab[1198] +#define __pyx_kp_b_iso88591_E_a_aq_Q_Qa_y_1_6_a_fHBd_kYhhrr __pyx_string_tab[1199] +#define __pyx_kp_b_iso88591_E_aq_Q_Qa_y_1_6_a_fHBd_kYffrrss __pyx_string_tab[1200] +#define __pyx_kp_b_iso88591_FF___aq_Q_T_q_a_BfHBd_lR_kkxxy __pyx_string_tab[1201] +#define __pyx_kp_b_iso88591_FF_ttu4_aq_Q_T_q_q_q_2V82T_xr_Q __pyx_string_tab[1202] +#define __pyx_kp_b_iso88591_Fa_aq_Q_T_q_a_2V82T_xr_Q_ffggss __pyx_string_tab[1203] +#define __pyx_kp_b_iso88591_GGZZr_s_F_F_a_8_aq_Q_T_q_a_A_Bf __pyx_string_tab[1204] +#define __pyx_kp_b_iso88591_GH_aq_Q_Kq_q_6_a_fHBd_m_hhiiuuv __pyx_string_tab[1205] +#define __pyx_kp_b_iso88591_GH_aq_Q_Qa_y_1_6_1_F_D_hb_LP_hh __pyx_string_tab[1206] +#define __pyx_kp_b_iso88591_G___aq_Q_Qa_y_1_6_a_F_D_hb_LP_h __pyx_string_tab[1207] +#define __pyx_kp_b_iso88591_H_I_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA __pyx_string_tab[1208] +#define __pyx_kp_b_iso88591_Hb_c_B_B_f_f_F_F_i_i_N_N_o_o_p __pyx_string_tab[1209] +#define __pyx_kp_b_iso88591_IJ_Kq_q_6_7_a_fHBd_jjkkwwx_y_H __pyx_string_tab[1210] +#define __pyx_kp_b_iso88591_IJ_Kq_q_Kq_q_7_a_6_4vXRt_P_jjkk __pyx_string_tab[1211] +#define __pyx_kp_b_iso88591_IJ_aq_Q_6_6_a_6_4vXRt_jjkkwwx_y __pyx_string_tab[1212] +#define __pyx_kp_b_iso88591_IJ_aq_Q_Qa_y_1_6_a_BfHBd_lR_jjk __pyx_string_tab[1213] +#define __pyx_kp_b_iso88591_I___aq_Q_Qa_y_1_6_1_BfHBd_lR_hh __pyx_string_tab[1214] +#define __pyx_kp_b_iso88591_JK0_aq_Q_Qa_y_1_6_q_q_RvXRt6_4 __pyx_string_tab[1215] +#define __pyx_kp_b_iso88591_JK_aq_Q_Kq_q_6_a_2V82T_xr_Q_kkl __pyx_string_tab[1216] +#define __pyx_kp_b_iso88591_JK_aq_Q_Qa_y_1_6_a_RvXRt6_4_S_k __pyx_string_tab[1217] +#define __pyx_kp_b_iso88591_J_K_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA __pyx_string_tab[1218] +#define __pyx_kp_b_iso88591_Jaaxxy_aq_Q_k_9G1_6_a_6_4vXRt_j __pyx_string_tab[1219] +#define __pyx_kp_b_iso88591_KL_Kq_q_Kq_q_7_a_2V82T_xr_R__ll __pyx_string_tab[1220] +#define __pyx_kp_b_iso88591_K_L_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA __pyx_string_tab[1221] +#define __pyx_kp_b_iso88591_Kq_7_8_U_F_U_7_A_we_1_q_i_vQi_R __pyx_string_tab[1222] +#define __pyx_kp_b_iso88591_Kq_Kq_7_8_U_E_U_7_A_we_1_q_i_vQ __pyx_string_tab[1223] +#define __pyx_kp_b_iso88591_Kq_Kq_7_8_U_E_U_7_A_we_A_q_4y_5 __pyx_string_tab[1224] +#define __pyx_kp_b_iso88591_Kq_q_6_7_a_fHBd_jjkkzz_Qj_1 __pyx_string_tab[1225] +#define __pyx_kp_b_iso88591_Kq_q_Kq_q_7_a_6_4vXRt_P_jjkkzz __pyx_string_tab[1226] +#define __pyx_kp_b_iso88591_Kq_q_Kq_q_7_a_fHBd_iijjyyzz_Qj __pyx_string_tab[1227] +#define __pyx_kp_b_iso88591_L_M_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA __pyx_string_tab[1228] +#define __pyx_kp_b_iso88591_N_1_A_t1 __pyx_string_tab[1229] +#define __pyx_kp_b_iso88591_Q_AQQVVWWX_Q_5Q_9AT_4q_1JfA_Cq __pyx_string_tab[1230] +#define __pyx_kp_b_iso88591_Q_A_1_G9JfA_t_1G1_q_1_a_U_4q __pyx_string_tab[1231] +#define __pyx_kp_b_iso88591_Q_B_1A_Q_V1E_gQfAU_Q_1 __pyx_string_tab[1232] +#define __pyx_kp_b_iso88591_Q_NeSTTU_Q_2_9AT_4q_1G6_wc_t81H __pyx_string_tab[1233] +#define __pyx_kp_b_iso88591_Q_V1E_q_WAQ_Q_aq_1 __pyx_string_tab[1234] +#define __pyx_kp_b_iso88591_Q_aq_T_q_8_T_U_7_A_we_2_1_q_i_f __pyx_string_tab[1235] +#define __pyx_kp_b_iso88591_Q_q __pyx_string_tab[1236] +#define __pyx_kp_b_iso88591_SSkk_Y_Y_Z_8_aq_T_q_8_T_U_7_A_w __pyx_string_tab[1237] +#define __pyx_kp_b_iso88591_TTU_aq_T_q_8_T_U_7_A_we_2_q_q_i __pyx_string_tab[1238] +#define __pyx_kp_b_iso88591_UUV2_aq_T_q_8_T_U_7_A_we_Bm_q_Q __pyx_string_tab[1239] +#define __pyx_kp_b_iso88591_UUV_aq_Qa_6_8_T_3a_U_7_A_we_M_q __pyx_string_tab[1240] +#define __pyx_kp_b_iso88591_UUmmn_aq_Qa_6_8_T_3a_U_7_A_we_M __pyx_string_tab[1241] +#define __pyx_kp_b_iso88591_V6_8_V1_U_7_A_we_Ba_q_4y_6_q_VW __pyx_string_tab[1242] +#define __pyx_kp_b_iso88591_VVW_V6_8_V1_U_7_A_we_2_q_q_i_ay __pyx_string_tab[1243] +#define __pyx_kp_b_iso88591_VVW_aq_Qa_6_8_T_3a_U_7_A_we_2_q __pyx_string_tab[1244] +#define __pyx_kp_b_iso88591_VVmmn4_aq_T_q_8_T_U_7_A_we_b_Zz __pyx_string_tab[1245] +#define __pyx_kp_b_iso88591_WWX_aq_T_q_8_T_U_7_A_we_r_q_Bd __pyx_string_tab[1246] +#define __pyx_kp_b_iso88591_XXY_aq_Qa_6_8_T_3a_U_7_A_we_R_A __pyx_string_tab[1247] +#define __pyx_kp_b_iso88591_YYZ_aq_Qa_6_8_T_3a_U_7_A_we_2_A __pyx_string_tab[1248] +#define __pyx_kp_b_iso88591_YZ_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A __pyx_string_tab[1249] +#define __pyx_kp_b_iso88591_Yq_r_I_I_J_2_aq_Qa_Kq_6_a_8_T_3 __pyx_string_tab[1250] +#define __pyx_kp_b_iso88591_Z_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w __pyx_string_tab[1251] +#define __pyx_kp_b_iso88591_Z_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w_2 __pyx_string_tab[1252] +#define __pyx_kp_b_iso88591_Zr_s_K_K_c_c_d_0_aq_Qa_Kq_6_a_8 __pyx_string_tab[1253] +#define __pyx_kp_b_iso88591_Zt_u_O_O_e_e_6_aq_Qa_Kq_6_a_8_T __pyx_string_tab[1254] +#define __pyx_kp_b_iso88591_a_QoQ __pyx_string_tab[1255] +#define __pyx_kp_b_iso88591_a_V_V_l_l_F_F_G_aq_Q_Qa_y_1_Kq __pyx_string_tab[1256] +#define __pyx_kp_b_iso88591_a_aq_Q_Qa_y_1_Kq_q_6_a_a_r_xr_V __pyx_string_tab[1257] +#define __pyx_kp_b_iso88591_a_aq_T_q_8_T_U_7_A_we_Bl_q_q_4y __pyx_string_tab[1258] +#define __pyx_kp_b_iso88591_ab_aq_Q_Qa_y_1_Kq_q_6_a_1_1_fHB __pyx_string_tab[1259] +#define __pyx_kp_b_iso88591_ab_aq_Q_Qa_y_1_Kq_q_6_a_a_fHBd __pyx_string_tab[1260] +#define __pyx_kp_b_iso88591_aq_6_8_T_6_U_7_A_we_1_q_i_fAYkQ __pyx_string_tab[1261] +#define __pyx_kp_b_iso88591_aq_Q_6_6_a_fHBd_n_iijjyyzz_Qj_1 __pyx_string_tab[1262] +#define __pyx_kp_b_iso88591_aq_Q_Q __pyx_string_tab[1263] +#define __pyx_kp_b_iso88591_aq_Q_Qa_y_1_6_6_a_a_RvXRt6_4_S __pyx_string_tab[1264] +#define __pyx_kp_b_iso88591_aq_Q_Qa_y_1_6_a_RvXRt6_4_S___kk __pyx_string_tab[1265] +#define __pyx_kp_b_iso88591_aq_Q_Qa_y_1_Kq_q_6_6_gQ_a_6_4vX __pyx_string_tab[1266] +#define __pyx_kp_b_iso88591_aq_Q_Qa_y_1_Kq_q_6_6_gQ_a_fHBd __pyx_string_tab[1267] +#define __pyx_kp_b_iso88591_aq_Q_Qa_y_1_Kq_q_6_6_gQ_a_r_xr __pyx_string_tab[1268] +#define __pyx_kp_b_iso88591_aq_Q_Qa_y_1_Kq_q_6_a_a_2V82T_xr __pyx_string_tab[1269] +#define __pyx_kp_b_iso88591_aq_Q_Qa_y_1_Kq_q_6_a_a_RvXRt6_4 __pyx_string_tab[1270] +#define __pyx_kp_b_iso88591_aq_Q_Qa_y_1_Kq_q_6_a_a_fHBd_kYf __pyx_string_tab[1271] +#define __pyx_kp_b_iso88591_aq_Q_T_q_6_4vXRt_WXXddeettuuv_Q __pyx_string_tab[1272] +#define __pyx_kp_b_iso88591_aq_Q_T_q_A_b_hb_F_D_TUUaabbqqrr __pyx_string_tab[1273] +#define __pyx_kp_b_iso88591_aq_Q_T_q_Q_Q_2V82T_xr_Q___kkll __pyx_string_tab[1274] +#define __pyx_kp_b_iso88591_aq_Q_T_q_a_2V82T_xr_QRR___nnoop __pyx_string_tab[1275] +#define __pyx_kp_b_iso88591_aq_Q_T_q_a_2V82T_xr_Q___kkll_Qm __pyx_string_tab[1276] +#define __pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_WXXddeettuuv __pyx_string_tab[1277] +#define __pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_iijjyyzz_Qk __pyx_string_tab[1278] +#define __pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_qP_llmmn_Qk __pyx_string_tab[1279] +#define __pyx_kp_b_iso88591_aq_Q_T_q_a_BfHBd_lRSS___ooppzz __pyx_string_tab[1280] +#define __pyx_kp_b_iso88591_aq_Q_T_q_a_F_D_hb_LPQQ_mmnno_Ql __pyx_string_tab[1281] +#define __pyx_kp_b_iso88591_aq_Q_T_q_a_F_D_hb_LP_jjkkzz_Ql __pyx_string_tab[1282] +#define __pyx_kp_b_iso88591_aq_Q_T_q_a_fHBdR_kkllxxy_z_I_I __pyx_string_tab[1283] +#define __pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_VWWccddssttu_Q __pyx_string_tab[1284] +#define __pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_a_kkllm_Qj_1 __pyx_string_tab[1285] +#define __pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_m_hhiixxyyz_Qj __pyx_string_tab[1286] +#define __pyx_kp_b_iso88591_aq_Q_T_q_a_r_xr_V82T_QlZ_jjkkl __pyx_string_tab[1287] +#define __pyx_kp_b_iso88591_aq_Q_T_q_a_r_xr_V82T_UVVbbccrrs __pyx_string_tab[1288] +#define __pyx_kp_b_iso88591_aq_Q_T_q_a_r_xr_V82T_Z_gghhwwxx __pyx_string_tab[1289] +#define __pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_2V82 __pyx_string_tab[1290] +#define __pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_6_4v __pyx_string_tab[1291] +#define __pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_BfHB __pyx_string_tab[1292] +#define __pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_BfHB_2 __pyx_string_tab[1293] +#define __pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_F_D __pyx_string_tab[1294] +#define __pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_RvXR __pyx_string_tab[1295] +#define __pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_a_Rv __pyx_string_tab[1296] +#define __pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_a_fH __pyx_string_tab[1297] +#define __pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_b_hb __pyx_string_tab[1298] +#define __pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_b_hb_2 __pyx_string_tab[1299] +#define __pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_fHBd __pyx_string_tab[1300] +#define __pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_fHBd_2 __pyx_string_tab[1301] +#define __pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_r_xr __pyx_string_tab[1302] +#define __pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_r_xr_2 __pyx_string_tab[1303] +#define __pyx_kp_b_iso88591_aq_Qa_6_8_T_3a_U_7_A_we_0_q_Rt9 __pyx_string_tab[1304] +#define __pyx_kp_b_iso88591_aq_Qa_6_8_T_3a_U_7_A_we_2Q_q_i __pyx_string_tab[1305] +#define __pyx_kp_b_iso88591_aq_Qa_6_a_8_T_3hjX___U_7_A_we_0 __pyx_string_tab[1306] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w __pyx_string_tab[1307] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w_2 __pyx_string_tab[1308] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w_3 __pyx_string_tab[1309] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we __pyx_string_tab[1310] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_2 __pyx_string_tab[1311] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_3 __pyx_string_tab[1312] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_4 __pyx_string_tab[1313] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_5 __pyx_string_tab[1314] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_6 __pyx_string_tab[1315] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_gQ_8_T_3hjX_eeoouuv __pyx_string_tab[1316] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_gQ_8_T_3hjX_eeoouuv_2 __pyx_string_tab[1317] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_0_q_Rt9Kt6 __pyx_string_tab[1318] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_0_q_Rt9Kt6_2 __pyx_string_tab[1319] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_1_1_q_b_I_F __pyx_string_tab[1320] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_1_81_Qha_b __pyx_string_tab[1321] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_1_q_i_fAYa __pyx_string_tab[1322] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm __pyx_string_tab[1323] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2_q_r_Yk_V1 __pyx_string_tab[1324] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_31_q_i_fAYa __pyx_string_tab[1325] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_32Q_axq_axq __pyx_string_tab[1326] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_32Q_q_i_fAY __pyx_string_tab[1327] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_4A_q_4y_4vQ __pyx_string_tab[1328] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_4A_q_4y_4vQ_2 __pyx_string_tab[1329] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_A_q_4y_4vQi __pyx_string_tab[1330] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_A_q_r_Yk_V1 __pyx_string_tab[1331] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Ba_q_4y_4vQ __pyx_string_tab[1332] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Q_q_D_D_ay __pyx_string_tab[1333] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Rq_q_D_D_ay __pyx_string_tab[1334] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_a_q_2T_T_q __pyx_string_tab[1335] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_b_axq_axq_2 __pyx_string_tab[1336] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_b_q_2T_T_q __pyx_string_tab[1337] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_q_q_1HA_Bd __pyx_string_tab[1338] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_q_r_Yk_V1IQ __pyx_string_tab[1339] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_r_q_Bd_d_WX __pyx_string_tab[1340] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_r_q_Qha_1HA __pyx_string_tab[1341] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns __pyx_string_tab[1342] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_10 __pyx_string_tab[1343] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_11 __pyx_string_tab[1344] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_12 __pyx_string_tab[1345] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_13 __pyx_string_tab[1346] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_14 __pyx_string_tab[1347] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_15 __pyx_string_tab[1348] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_2 __pyx_string_tab[1349] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_3 __pyx_string_tab[1350] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_4 __pyx_string_tab[1351] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_5 __pyx_string_tab[1352] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_6 __pyx_string_tab[1353] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_7 __pyx_string_tab[1354] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_8 __pyx_string_tab[1355] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_9 __pyx_string_tab[1356] +#define __pyx_kp_b_iso88591_aq_xs_q_A_Q_a __pyx_string_tab[1357] +#define __pyx_kp_b_iso88591_aq_xs_q_Qa_1 __pyx_string_tab[1358] +#define __pyx_kp_b_iso88591_ay_z_R_R_j_j_k_4_aq_Q_Qa_y_1_Kq __pyx_string_tab[1359] +#define __pyx_kp_b_iso88591_ayyz_aq_Qa_Kq_6_a_8_T_3hjX_U_7 __pyx_string_tab[1360] +#define __pyx_kp_b_iso88591_bc_aq_Q_Qa_y_1_Kq_q_6_a_a_6_4vX __pyx_string_tab[1361] +#define __pyx_kp_b_iso88591_c_X_X_m_m_G_G_H_6_aq_Q_Qa_y_1_K __pyx_string_tab[1362] +#define __pyx_kp_b_iso88591_cd_aq_Q_Qa_y_1_Kq_q_6_a_a_F_D_h __pyx_string_tab[1363] +#define __pyx_kp_b_iso88591_d_W_W_X_aq_Q_Qa_y_1_Kq_q_6_a_a __pyx_string_tab[1364] +#define __pyx_kp_b_iso88591_d_Y_Y_Z_2_aq_Q_Qa_y_1_Kq_q_6_a __pyx_string_tab[1365] +#define __pyx_kp_b_iso88591_de_aq_Q_Qa_y_1_Kq_q_6_a_2V82T_x __pyx_string_tab[1366] +#define __pyx_kp_b_iso88591_ef_aq_Q_Qa_y_1_Kq_q_6_a_a_BfHBd __pyx_string_tab[1367] +#define __pyx_kp_b_iso88591_fg2_aq_Q_Qa_y_1_Kq_q_6_a_q_q_Rv __pyx_string_tab[1368] +#define __pyx_kp_b_iso88591_fg_aq_Q_Qa_y_1_Kq_q_6_a_a_RvXRt __pyx_string_tab[1369] +#define __pyx_kp_b_iso88591_i_A_A_B_0_aq_Q_Qa_y_1_Kq_q_6_a __pyx_string_tab[1370] +#define __pyx_kp_b_iso88591_q_1_Q_a __pyx_string_tab[1371] +#define __pyx_kp_b_iso88591_q_9A_1_q_1_1_1A_q_a_1A_4z_A_G1 __pyx_string_tab[1372] +#define __pyx_kp_b_iso88591_q_aq_T_q_8_T_U_7_A_we_b_Q_q_2T __pyx_string_tab[1373] +#define __pyx_kp_b_iso88591_uBa_q_1A__F_F_t2Q __pyx_string_tab[1374] +#define __pyx_kp_b_iso88591_uCq_Q_1A_1_q_AQ __pyx_string_tab[1375] +#define __pyx_kp_b_iso88591_v_w_P_P_Q_aq_Qa_Kq_6_a_8_T_3hjX __pyx_string_tab[1376] +#define __pyx_kp_b_iso88591_v_w_Q_Q_f_f_A_2_aq_Qa_Kq_6_a_8 __pyx_string_tab[1377] +#define __pyx_kp_b_iso88591_w_x_R_R_S_aq_Qa_Kq_6_a_8_T_3hjX __pyx_string_tab[1378] +#define __pyx_kp_b_iso88591_wx_aq_Qa_Kq_6_gQ_8_T_3hjX_eeoou __pyx_string_tab[1379] +#define __pyx_kp_b_iso88591_x_y_P_P_Q_6_aq_Q_Qa_y_1_Kq_q_6 __pyx_string_tab[1380] +#define __pyx_kp_b_iso88591_y_1_q_Q_a_Q_a_Q_a_Q_a_Q_a_Q_a_Q __pyx_string_tab[1381] +#define __pyx_kp_b_iso88591_z_R_R_S_aq_Qa_Kq_6_gQ_8_T_3hjX __pyx_string_tab[1382] #define __pyx_int_0 __pyx_number_tab[0] #define __pyx_int_neg_1 __pyx_number_tab[1] #define __pyx_int_1 __pyx_number_tab[2] @@ -4617,8 +4869,8 @@ static __pyx_mstatetype * const __pyx_mstate_global = &__pyx_mstate_global_stati #define __pyx_int_3 __pyx_number_tab[4] #define __pyx_int_4 __pyx_number_tab[5] #define __pyx_int_8 __pyx_number_tab[6] -#define __pyx_int_9 __pyx_number_tab[7] -#define __pyx_int_12 __pyx_number_tab[8] +#define __pyx_int_12 __pyx_number_tab[7] +#define __pyx_int_14 __pyx_number_tab[8] #define __pyx_int_16 __pyx_number_tab[9] #define __pyx_int_32 __pyx_number_tab[10] #define __pyx_int_64 __pyx_number_tab[11] @@ -4628,10 +4880,14 @@ static __pyx_mstatetype * const __pyx_mstate_global = &__pyx_mstate_global_stati #define __pyx_int_1024 __pyx_number_tab[15] #define __pyx_int_2048 __pyx_number_tab[16] #define __pyx_int_4096 __pyx_number_tab[17] -#define __pyx_int_16777216 __pyx_number_tab[18] -#define __pyx_int_67108864 __pyx_number_tab[19] -#define __pyx_int_134217728 __pyx_number_tab[20] -#define __pyx_int_268435456 __pyx_number_tab[21] +#define __pyx_int_8192 __pyx_number_tab[18] +#define __pyx_int_16777216 __pyx_number_tab[19] +#define __pyx_int_33554432 __pyx_number_tab[20] +#define __pyx_int_67108864 __pyx_number_tab[21] +#define __pyx_int_134217728 __pyx_number_tab[22] +#define __pyx_int_268435456 __pyx_number_tab[23] +#define __pyx_int_536870912 __pyx_number_tab[24] +#define __pyx_int_1073741824 __pyx_number_tab[25] /* #### Code section: module_state_clear ### */ #if CYTHON_USE_MODULE_STATE static CYTHON_SMALL_CODE int __pyx_m_clear(PyObject *m) { @@ -4663,9 +4919,9 @@ static CYTHON_SMALL_CODE int __pyx_m_clear(PyObject *m) { Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_character); Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_ufunc); for (int i=0; i<10; ++i) { Py_CLEAR(clear_module_state->__pyx_tuple[i]); } - for (int i=0; i<369; ++i) { Py_CLEAR(clear_module_state->__pyx_codeobj_tab[i]); } - for (int i=0; i<1154; ++i) { Py_CLEAR(clear_module_state->__pyx_string_tab[i]); } - for (int i=0; i<22; ++i) { Py_CLEAR(clear_module_state->__pyx_number_tab[i]); } + for (int i=0; i<450; ++i) { Py_CLEAR(clear_module_state->__pyx_codeobj_tab[i]); } + for (int i=0; i<1383; ++i) { Py_CLEAR(clear_module_state->__pyx_string_tab[i]); } + for (int i=0; i<26; ++i) { Py_CLEAR(clear_module_state->__pyx_number_tab[i]); } /* #### Code section: module_state_clear_contents ### */ /* CommonTypesMetaclass.module_state_clear */ Py_CLEAR(clear_module_state->__pyx_CommonTypesMetaclassType); @@ -4705,9 +4961,9 @@ static CYTHON_SMALL_CODE int __pyx_m_traverse(PyObject *m, visitproc visit, void Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_character); Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_ufunc); for (int i=0; i<10; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_tuple[i]); } - for (int i=0; i<369; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_codeobj_tab[i]); } - for (int i=0; i<1154; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_string_tab[i]); } - for (int i=0; i<22; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_number_tab[i]); } + for (int i=0; i<450; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_codeobj_tab[i]); } + for (int i=0; i<1383; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_string_tab[i]); } + for (int i=0; i<26; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_number_tab[i]); } /* #### Code section: module_state_traverse_contents ### */ /* CommonTypesMetaclass.module_state_traverse */ Py_VISIT(traverse_module_state->__pyx_CommonTypesMetaclassType); @@ -5881,6 +6137,12 @@ static PyObject *__pyx_f_5talib_7_ta_lib__ta_check_success(PyObject *__pyx_v_fun __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Not_Supported_TA_NOT_SUPPORTED); __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Not_Supported_TA_NOT_SUPPORTED; + break; + case 17: + + __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Insufficient_History_TA_INSUFFIC); + __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Insufficient_History_TA_INSUFFIC; + break; case 0x1388: @@ -5903,9 +6165,9 @@ static PyObject *__pyx_f_5talib_7_ta_lib__ta_check_success(PyObject *__pyx_v_fun __pyx_t_2 = NULL; - __pyx_t_3 = __Pyx_PyUnicode_Unicode(__pyx_v_function_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 48, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyUnicode_Unicode(__pyx_v_function_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyUnicode_From_TA_RetCode(__pyx_v_ret_code, 0, ' ', 'd'); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 48, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyUnicode_From_TA_RetCode(__pyx_v_ret_code, 0, ' ', 'd'); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5[0] = __pyx_t_3; __pyx_t_5[1] = __pyx_mstate_global->__pyx_kp_u_function_failed_with_error_code; @@ -5914,7 +6176,7 @@ static PyObject *__pyx_f_5talib_7_ta_lib__ta_check_success(PyObject *__pyx_v_fun __pyx_t_5[4] = __pyx_v_description; __pyx_t_6 = __Pyx_PyUnicode_Join(__pyx_t_5, 5, __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + 33 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4) + 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_v_description), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_v_description)); - if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 47, __pyx_L1_error) + if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 51, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; @@ -5924,12 +6186,12 @@ static PyObject *__pyx_f_5talib_7_ta_lib__ta_check_success(PyObject *__pyx_v_fun __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_Exception)), __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 47, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 51, __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, 47, __pyx_L1_error) + __PYX_ERR(1, 51, __pyx_L1_error) /* function exit code */ @@ -5989,39 +6251,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_function_name,&__pyx_mstate_global->__pyx_n_u_ret_code,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(1, 6, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(1, 8, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 6, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 8, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 6, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 8, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_check_success", 0) < (0)) __PYX_ERR(1, 6, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_check_success", 0) < (0)) __PYX_ERR(1, 8, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_check_success", 1, 2, 2, i); __PYX_ERR(1, 6, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_check_success", 1, 2, 2, i); __PYX_ERR(1, 8, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 6, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 8, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 6, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 8, __pyx_L3_error) } __pyx_v_function_name = ((PyObject*)values[0]); - __pyx_v_ret_code = __Pyx_PyLong_As_TA_RetCode(values[1]); if (unlikely((__pyx_v_ret_code == ((TA_RetCode)-1)) && PyErr_Occurred())) __PYX_ERR(1, 6, __pyx_L3_error) + __pyx_v_ret_code = __Pyx_PyLong_As_TA_RetCode(values[1]); if (unlikely((__pyx_v_ret_code == ((TA_RetCode)-1)) && PyErr_Occurred())) __PYX_ERR(1, 8, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_ta_check_success", 1, 2, 2, __pyx_nargs); __PYX_ERR(1, 6, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_ta_check_success", 1, 2, 2, __pyx_nargs); __PYX_ERR(1, 8, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -6032,7 +6294,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_function_name), (&PyUnicode_Type), 1, "function_name", 1))) __PYX_ERR(1, 6, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_function_name), (&PyUnicode_Type), 1, "function_name", 1))) __PYX_ERR(1, 8, __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 */ @@ -6061,7 +6323,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib__ta_check_success(CYTHON_UNUSED PyObje 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, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_v_function_name, __pyx_v_ret_code, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 8, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -6108,7 +6370,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_2_ta_initialize(CYTHON_UNUSED PyObject __pyx_v_ret_code = TA_Initialize(); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_Initialize, __pyx_v_ret_code, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 53, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_Initialize, __pyx_v_ret_code, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 57, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -6156,7 +6418,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_4_ta_shutdown(CYTHON_UNUSED PyObject * __pyx_v_ret_code = TA_Shutdown(); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_Shutdown, __pyx_v_ret_code, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 58, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_Shutdown, __pyx_v_ret_code, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 62, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -6215,32 +6477,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(1, 63, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(1, 68, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 63, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 68, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(1, 63, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(1, 68, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(1, 63, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(1, 68, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 63, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 68, __pyx_L3_error) } __pyx_v_self = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 63, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 68, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -6272,81 +6534,121 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_7MA_Type___init__(CYTHON_UNUSED PyObje int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = __Pyx_PyDict_NewPresized(9); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 65, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyDict_NewPresized(14); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 70, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 65, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 70, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_SMA); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 65, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_SMA); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 70, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_t_1, __pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Simple_Moving_Average) < (0)) __PYX_ERR(1, 65, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_1, __pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Simple_Moving_Average) < (0)) __PYX_ERR(1, 70, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 66, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 71, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_EMA); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 66, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_EMA); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 71, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_t_1, __pyx_t_2, __pyx_mstate_global->__pyx_kp_u_Exponential_Moving_Average) < (0)) __PYX_ERR(1, 65, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_1, __pyx_t_2, __pyx_mstate_global->__pyx_kp_u_Exponential_Moving_Average) < (0)) __PYX_ERR(1, 70, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 67, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 72, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_WMA); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 67, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_WMA); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 72, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_t_1, __pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Weighted_Moving_Average) < (0)) __PYX_ERR(1, 65, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_1, __pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Weighted_Moving_Average) < (0)) __PYX_ERR(1, 70, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 68, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_DEMA); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 68, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_DEMA); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_t_1, __pyx_t_2, __pyx_mstate_global->__pyx_kp_u_Double_Exponential_Moving_Averag) < (0)) __PYX_ERR(1, 65, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_1, __pyx_t_2, __pyx_mstate_global->__pyx_kp_u_Double_Exponential_Moving_Averag) < (0)) __PYX_ERR(1, 70, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 69, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_TEMA); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 69, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_TEMA); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_t_1, __pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Triple_Exponential_Moving_Averag) < (0)) __PYX_ERR(1, 65, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_1, __pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Triple_Exponential_Moving_Averag) < (0)) __PYX_ERR(1, 70, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 70, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 75, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_TRIMA); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 70, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_TRIMA); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 75, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_t_1, __pyx_t_2, __pyx_mstate_global->__pyx_kp_u_Triangular_Moving_Average) < (0)) __PYX_ERR(1, 65, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_1, __pyx_t_2, __pyx_mstate_global->__pyx_kp_u_Triangular_Moving_Average) < (0)) __PYX_ERR(1, 70, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 71, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 76, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_KAMA); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 71, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_KAMA); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 76, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_t_1, __pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Kaufman_Adaptive_Moving_Average) < (0)) __PYX_ERR(1, 65, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_1, __pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Kaufman_Adaptive_Moving_Average) < (0)) __PYX_ERR(1, 70, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 72, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 77, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MAMA); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 72, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MAMA); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 77, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_t_1, __pyx_t_2, __pyx_mstate_global->__pyx_kp_u_MESA_Adaptive_Moving_Average) < (0)) __PYX_ERR(1, 65, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_1, __pyx_t_2, __pyx_mstate_global->__pyx_kp_u_MESA_Adaptive_Moving_Average) < (0)) __PYX_ERR(1, 70, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 73, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_T3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 73, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_T3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_t_1, __pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Triple_Generalized_Double_Expone) < (0)) __PYX_ERR(1, 65, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_1, __pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Triple_Generalized_Double_Expone) < (0)) __PYX_ERR(1, 70, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_lookup, __pyx_t_1) < (0)) __PYX_ERR(1, 64, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 79, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_HMA); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 79, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_t_1, __pyx_t_2, __pyx_mstate_global->__pyx_kp_u_Hull_Moving_Average) < (0)) __PYX_ERR(1, 70, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 80, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_DISABLED); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 80, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_t_1, __pyx_t_3, __pyx_mstate_global->__pyx_kp_u_No_Moving_Average_identity) < (0)) __PYX_ERR(1, 70, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 81, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_DEFAULT); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 81, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_t_1, __pyx_t_2, __pyx_mstate_global->__pyx_kp_u_The_Function_s_Own_Default_Movin) < (0)) __PYX_ERR(1, 70, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 82, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ZLEMA); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 82, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_t_1, __pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Zero_Lag_Exponential_Moving_Aver) < (0)) __PYX_ERR(1, 70, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 83, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_RMA); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 83, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_t_1, __pyx_t_2, __pyx_mstate_global->__pyx_kp_u_Wilder_s_Smoothed_Moving_Average) < (0)) __PYX_ERR(1, 70, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_lookup, __pyx_t_1) < (0)) __PYX_ERR(1, 69, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -6407,39 +6709,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_type,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(1, 76, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(1, 86, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 76, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 86, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 76, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 86, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__getitem__", 0) < (0)) __PYX_ERR(1, 76, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__getitem__", 0) < (0)) __PYX_ERR(1, 86, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__getitem__", 1, 2, 2, i); __PYX_ERR(1, 76, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__getitem__", 1, 2, 2, i); __PYX_ERR(1, 86, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 76, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 86, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 76, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 86, __pyx_L3_error) } __pyx_v_self = values[0]; __pyx_v_type_ = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__getitem__", 1, 2, 2, __pyx_nargs); __PYX_ERR(1, 76, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__getitem__", 1, 2, 2, __pyx_nargs); __PYX_ERR(1, 86, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -6471,9 +6773,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_7MA_Type_2__getitem__(CYTHON_UNUSED Py __Pyx_RefNannySetupContext("__getitem__", 0); __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_lookup); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 77, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_lookup); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_type_); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 77, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_type_); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; @@ -6495,16 +6797,214 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_7MA_Type_2__getitem__(CYTHON_UNUSED Py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_7_ta_set_unstable_period(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_7_ta_func_unst_id(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_6_ta_func_unst_id, "_ta_func_unst_id(name)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_7_ta_func_unst_id = {"_ta_func_unst_id", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_7_ta_func_unst_id, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_6_ta_func_unst_id}; +static PyObject *__pyx_pw_5talib_7_ta_lib_7_ta_func_unst_id(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_name = 0; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("_ta_func_unst_id (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_name,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(1, 135, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 135, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_func_unst_id", 0) < (0)) __PYX_ERR(1, 135, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_func_unst_id", 1, 1, 1, i); __PYX_ERR(1, 135, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 135, __pyx_L3_error) + } + __pyx_v_name = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("_ta_func_unst_id", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 135, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib._ta_func_unst_id", __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_func_unst_id(__pyx_self, __pyx_v_name); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_6_ta_func_unst_id(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_name) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8[4]; + size_t __pyx_t_9; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_ta_func_unst_id", 0); + + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_ta_func_unst_retired); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 136, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_name, __pyx_t_1, Py_EQ)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 136, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_2) { + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_warnings); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 137, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_warn); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 137, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_name), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 139, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_ta_func_unst_retired); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 139, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_v_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 139, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_7), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 139, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8[0] = __pyx_mstate_global->__pyx_kp_u_unstable_period; + __pyx_t_8[1] = __pyx_t_4; + __pyx_t_8[2] = __pyx_mstate_global->__pyx_kp_u_is_deprecated_and_has_no_effect; + __pyx_t_8[3] = __pyx_t_6; + + __pyx_t_7 = __Pyx_PyUnicode_Join(__pyx_t_8, 4, 17 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4) + 35 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6)); + if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 138, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + __pyx_t_9 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_5, __pyx__function); + __pyx_t_9 = 0; + } + #endif + { + PyObject *__pyx_callargs[3 + ((CYTHON_VECTORCALL) ? 1 : 0)] = {__pyx_t_3, __pyx_t_7, ((PyObject *)(((PyTypeObject*)PyExc_DeprecationWarning)))}; + __pyx_t_6 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 137, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_stacklevel, __pyx_mstate_global->__pyx_int_3, __pyx_t_6, __pyx_callargs+3, 0) < (0)) __PYX_ERR(1, 137, __pyx_L1_error) + __pyx_t_1 = __Pyx_Object_Vectorcall_CallFromBuilder((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_9, (3-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_6); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 137, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + + } + + __Pyx_XDECREF(__pyx_r); + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_ta_func_unst_ids); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 142, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 142, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_5; + __pyx_t_5 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("talib._ta_lib._ta_func_unst_id", __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_set_unstable_period(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_6_ta_set_unstable_period, "_ta_set_unstable_period(name, period)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_7_ta_set_unstable_period = {"_ta_set_unstable_period", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_7_ta_set_unstable_period, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_6_ta_set_unstable_period}; -static PyObject *__pyx_pw_5talib_7_ta_lib_7_ta_set_unstable_period(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8_ta_set_unstable_period, "_ta_set_unstable_period(name, period)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_9_ta_set_unstable_period = {"_ta_set_unstable_period", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9_ta_set_unstable_period, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8_ta_set_unstable_period}; +static PyObject *__pyx_pw_5talib_7_ta_lib_9_ta_set_unstable_period(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -6535,39 +7035,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_name,&__pyx_mstate_global->__pyx_n_u_period,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(1, 90, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(1, 144, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 90, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 144, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 90, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 144, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_set_unstable_period", 0) < (0)) __PYX_ERR(1, 90, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_set_unstable_period", 0) < (0)) __PYX_ERR(1, 144, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_set_unstable_period", 1, 2, 2, i); __PYX_ERR(1, 90, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_set_unstable_period", 1, 2, 2, i); __PYX_ERR(1, 144, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 90, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 144, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 90, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 144, __pyx_L3_error) } __pyx_v_name = values[0]; __pyx_v_period = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_ta_set_unstable_period", 1, 2, 2, __pyx_nargs); __PYX_ERR(1, 90, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_ta_set_unstable_period", 1, 2, 2, __pyx_nargs); __PYX_ERR(1, 144, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -6578,7 +7078,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __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); + __pyx_r = __pyx_pf_5talib_7_ta_lib_8_ta_set_unstable_period(__pyx_self, __pyx_v_name, __pyx_v_period); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -6588,35 +7088,68 @@ PyObject *__pyx_args, PyObject *__pyx_kwds 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) { +static PyObject *__pyx_pf_5talib_7_ta_lib_8_ta_set_unstable_period(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_name, PyObject *__pyx_v_period) { TA_RetCode __pyx_v_ret_code; TA_FuncUnstId __pyx_v_id; + PyObject *__pyx_v_unst_id = NULL; 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; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + TA_FuncUnstId __pyx_t_6; + unsigned int __pyx_t_7; 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_mstate_global->__pyx_n_u_ta_func_unst_ids); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 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(1, 92, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __Pyx_PyLong_As_TA_FuncUnstId(__pyx_t_2); if (unlikely((__pyx_t_3 == ((TA_FuncUnstId)-1)) && PyErr_Occurred())) __PYX_ERR(1, 92, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_id = __pyx_t_3; + __pyx_t_2 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_ta_func_unst_id); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 147, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); + assert(__pyx_t_2); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_3, __pyx__function); + __pyx_t_4 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_name}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 147, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_v_unst_id = __pyx_t_1; + __pyx_t_1 = 0; - __pyx_t_4 = __Pyx_PyLong_As_unsigned_int(__pyx_v_period); if (unlikely((__pyx_t_4 == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(1, 93, __pyx_L1_error) - __pyx_v_ret_code = TA_SetUnstablePeriod(__pyx_v_id, __pyx_t_4); + __pyx_t_5 = (__pyx_v_unst_id == Py_None); + if (__pyx_t_5) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SetUnstablePeriod, __pyx_v_ret_code, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 94, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + + } + + __pyx_t_6 = __Pyx_PyLong_As_TA_FuncUnstId(__pyx_v_unst_id); if (unlikely((__pyx_t_6 == ((TA_FuncUnstId)-1)) && PyErr_Occurred())) __PYX_ERR(1, 150, __pyx_L1_error) + __pyx_v_id = __pyx_t_6; + + __pyx_t_7 = __Pyx_PyLong_As_unsigned_int(__pyx_v_period); if (unlikely((__pyx_t_7 == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(1, 151, __pyx_L1_error) + __pyx_v_ret_code = TA_SetUnstablePeriod(__pyx_v_id, __pyx_t_7); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SetUnstablePeriod, __pyx_v_ret_code, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 152, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* function exit code */ @@ -6625,9 +7158,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_6_ta_set_unstable_period(CYTHON_UNUSED __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("talib._ta_lib._ta_set_unstable_period", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF(__pyx_v_unst_id); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -6635,16 +7170,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_6_ta_set_unstable_period(CYTHON_UNUSED /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_9_ta_get_unstable_period(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11_ta_get_unstable_period(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8_ta_get_unstable_period, "_ta_get_unstable_period(name)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_9_ta_get_unstable_period = {"_ta_get_unstable_period", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9_ta_get_unstable_period, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8_ta_get_unstable_period}; -static PyObject *__pyx_pw_5talib_7_ta_lib_9_ta_get_unstable_period(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10_ta_get_unstable_period, "_ta_get_unstable_period(name)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11_ta_get_unstable_period = {"_ta_get_unstable_period", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11_ta_get_unstable_period, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10_ta_get_unstable_period}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11_ta_get_unstable_period(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -6674,32 +7209,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_name,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(1, 96, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(1, 154, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 96, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 154, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_get_unstable_period", 0) < (0)) __PYX_ERR(1, 96, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_get_unstable_period", 0) < (0)) __PYX_ERR(1, 154, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_get_unstable_period", 1, 1, 1, i); __PYX_ERR(1, 96, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_get_unstable_period", 1, 1, 1, i); __PYX_ERR(1, 154, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 96, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 154, __pyx_L3_error) } __pyx_v_name = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_ta_get_unstable_period", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 96, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_ta_get_unstable_period", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 154, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -6710,7 +7245,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8_ta_get_unstable_period(__pyx_self, __pyx_v_name); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10_ta_get_unstable_period(__pyx_self, __pyx_v_name); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -6720,35 +7255,69 @@ PyObject *__pyx_args, PyObject *__pyx_kwds 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) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10_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_v_unst_id = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; - TA_FuncUnstId __pyx_t_3; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + TA_FuncUnstId __pyx_t_6; 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_mstate_global->__pyx_n_u_ta_func_unst_ids); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 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(1, 98, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __Pyx_PyLong_As_TA_FuncUnstId(__pyx_t_2); if (unlikely((__pyx_t_3 == ((TA_FuncUnstId)-1)) && PyErr_Occurred())) __PYX_ERR(1, 98, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_id = __pyx_t_3; + __pyx_t_2 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_ta_func_unst_id); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 157, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); + assert(__pyx_t_2); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_3, __pyx__function); + __pyx_t_4 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_name}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 157, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_v_unst_id = __pyx_t_1; + __pyx_t_1 = 0; + + __pyx_t_5 = (__pyx_v_unst_id == Py_None); + if (__pyx_t_5) { + + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); + __pyx_r = __pyx_mstate_global->__pyx_int_0; + goto __pyx_L0; + + } + + __pyx_t_6 = __Pyx_PyLong_As_TA_FuncUnstId(__pyx_v_unst_id); if (unlikely((__pyx_t_6 == ((TA_FuncUnstId)-1)) && PyErr_Occurred())) __PYX_ERR(1, 160, __pyx_L1_error) + __pyx_v_id = __pyx_t_6; __pyx_v_period = TA_GetUnstablePeriod(__pyx_v_id); __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = __Pyx_PyLong_From_unsigned_int(__pyx_v_period); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 100, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_r = __pyx_t_2; - __pyx_t_2 = 0; + __pyx_t_1 = __Pyx_PyLong_From_unsigned_int(__pyx_v_period); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 162, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; goto __pyx_L0; @@ -6756,9 +7325,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8_ta_get_unstable_period(CYTHON_UNUSED __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("talib._ta_lib._ta_get_unstable_period", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF(__pyx_v_unst_id); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -6766,16 +7337,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8_ta_get_unstable_period(CYTHON_UNUSED /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11_ta_set_compatibility(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13_ta_set_compatibility(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10_ta_set_compatibility, "_ta_set_compatibility(value)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11_ta_set_compatibility = {"_ta_set_compatibility", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11_ta_set_compatibility, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10_ta_set_compatibility}; -static PyObject *__pyx_pw_5talib_7_ta_lib_11_ta_set_compatibility(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12_ta_set_compatibility, "_ta_set_compatibility(value)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_13_ta_set_compatibility = {"_ta_set_compatibility", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13_ta_set_compatibility, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12_ta_set_compatibility}; +static PyObject *__pyx_pw_5talib_7_ta_lib_13_ta_set_compatibility(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -6805,32 +7376,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_value,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(1, 102, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(1, 164, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 102, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 164, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_set_compatibility", 0) < (0)) __PYX_ERR(1, 102, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_set_compatibility", 0) < (0)) __PYX_ERR(1, 164, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_set_compatibility", 1, 1, 1, i); __PYX_ERR(1, 102, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_set_compatibility", 1, 1, 1, i); __PYX_ERR(1, 164, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 102, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 164, __pyx_L3_error) } __pyx_v_value = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_ta_set_compatibility", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 102, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_ta_set_compatibility", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 164, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -6841,7 +7412,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10_ta_set_compatibility(__pyx_self, __pyx_v_value); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12_ta_set_compatibility(__pyx_self, __pyx_v_value); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -6851,7 +7422,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10_ta_set_compatibility(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_value) { +static PyObject *__pyx_pf_5talib_7_ta_lib_12_ta_set_compatibility(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_value) { TA_RetCode __pyx_v_ret_code; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -6862,10 +7433,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10_ta_set_compatibility(CYTHON_UNUSED int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_ta_set_compatibility", 0); - __pyx_t_1 = __Pyx_PyLong_As_TA_Compatibility(__pyx_v_value); if (unlikely((__pyx_t_1 == ((TA_Compatibility)-1)) && PyErr_Occurred())) __PYX_ERR(1, 104, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_As_TA_Compatibility(__pyx_v_value); if (unlikely((__pyx_t_1 == ((TA_Compatibility)-1)) && PyErr_Occurred())) __PYX_ERR(1, 166, __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_mstate_global->__pyx_n_u_TA_SetCompatibility, __pyx_v_ret_code, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 105, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SetCompatibility, __pyx_v_ret_code, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -6885,23 +7456,23 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10_ta_set_compatibility(CYTHON_UNUSED /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13_ta_get_compatibility(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12_ta_get_compatibility, "_ta_get_compatibility()"); -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, __pyx_doc_5talib_7_ta_lib_12_ta_get_compatibility}; -static PyObject *__pyx_pw_5talib_7_ta_lib_13_ta_get_compatibility(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) { +static PyObject *__pyx_pw_5talib_7_ta_lib_15_ta_get_compatibility(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14_ta_get_compatibility, "_ta_get_compatibility()"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_15_ta_get_compatibility = {"_ta_get_compatibility", (PyCFunction)__pyx_pw_5talib_7_ta_lib_15_ta_get_compatibility, METH_NOARGS, __pyx_doc_5talib_7_ta_lib_14_ta_get_compatibility}; +static PyObject *__pyx_pw_5talib_7_ta_lib_15_ta_get_compatibility(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("_ta_get_compatibility (wrapper)", 0); __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_12_ta_get_compatibility(__pyx_self); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14_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) { +static PyObject *__pyx_pf_5talib_7_ta_lib_14_ta_get_compatibility(CYTHON_UNUSED PyObject *__pyx_self) { int __pyx_v_value; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -6914,7 +7485,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12_ta_get_compatibility(CYTHON_UNUSED __pyx_v_value = TA_GetCompatibility(); __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 110, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -6934,16 +7505,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12_ta_get_compatibility(CYTHON_UNUSED /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15_ta_set_candle_settings(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_17_ta_set_candle_settings(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14_ta_set_candle_settings, "_ta_set_candle_settings(settingtype, rangetype, avgperiod, factor)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_15_ta_set_candle_settings = {"_ta_set_candle_settings", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15_ta_set_candle_settings, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14_ta_set_candle_settings}; -static PyObject *__pyx_pw_5talib_7_ta_lib_15_ta_set_candle_settings(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16_ta_set_candle_settings, "_ta_set_candle_settings(settingtype, rangetype, avgperiod, factor)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_17_ta_set_candle_settings = {"_ta_set_candle_settings", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17_ta_set_candle_settings, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16_ta_set_candle_settings}; +static PyObject *__pyx_pw_5talib_7_ta_lib_17_ta_set_candle_settings(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -6976,44 +7547,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_settingtype,&__pyx_mstate_global->__pyx_n_u_rangetype,&__pyx_mstate_global->__pyx_n_u_avgperiod,&__pyx_mstate_global->__pyx_n_u_factor,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(1, 124, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(1, 186, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(1, 124, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(1, 186, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(1, 124, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(1, 186, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 124, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 186, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 124, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 186, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_set_candle_settings", 0) < (0)) __PYX_ERR(1, 124, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_set_candle_settings", 0) < (0)) __PYX_ERR(1, 186, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_set_candle_settings", 1, 4, 4, i); __PYX_ERR(1, 124, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_set_candle_settings", 1, 4, 4, i); __PYX_ERR(1, 186, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 124, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 186, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 124, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 186, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(1, 124, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(1, 186, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(1, 124, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(1, 186, __pyx_L3_error) } __pyx_v_settingtype = values[0]; __pyx_v_rangetype = values[1]; @@ -7022,7 +7593,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_ta_set_candle_settings", 1, 4, 4, __pyx_nargs); __PYX_ERR(1, 124, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_ta_set_candle_settings", 1, 4, 4, __pyx_nargs); __PYX_ERR(1, 186, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -7033,7 +7604,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __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); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16_ta_set_candle_settings(__pyx_self, __pyx_v_settingtype, __pyx_v_rangetype, __pyx_v_avgperiod, __pyx_v_factor); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -7043,7 +7614,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds 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) { +static PyObject *__pyx_pf_5talib_7_ta_lib_16_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 @@ -7057,13 +7628,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14_ta_set_candle_settings(CYTHON_UNUSE int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_ta_set_candle_settings", 0); - __pyx_t_1 = __Pyx_PyLong_As_TA_CandleSettingType(__pyx_v_settingtype); if (unlikely((__pyx_t_1 == ((TA_CandleSettingType)-1)) && PyErr_Occurred())) __PYX_ERR(1, 126, __pyx_L1_error) - __pyx_t_2 = __Pyx_PyLong_As_TA_RangeType(__pyx_v_rangetype); if (unlikely((__pyx_t_2 == ((TA_RangeType)-1)) && PyErr_Occurred())) __PYX_ERR(1, 126, __pyx_L1_error) - __pyx_t_3 = __Pyx_PyLong_As_int(__pyx_v_avgperiod); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 126, __pyx_L1_error) - __pyx_t_4 = __Pyx_PyFloat_AsDouble(__pyx_v_factor); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 126, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_As_TA_CandleSettingType(__pyx_v_settingtype); if (unlikely((__pyx_t_1 == ((TA_CandleSettingType)-1)) && PyErr_Occurred())) __PYX_ERR(1, 188, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_As_TA_RangeType(__pyx_v_rangetype); if (unlikely((__pyx_t_2 == ((TA_RangeType)-1)) && PyErr_Occurred())) __PYX_ERR(1, 188, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_As_int(__pyx_v_avgperiod); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 188, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyFloat_AsDouble(__pyx_v_factor); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 188, __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_mstate_global->__pyx_n_u_TA_SetCandleSettings, __pyx_v_ret_code, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 127, __pyx_L1_error) + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SetCandleSettings, __pyx_v_ret_code, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; @@ -7083,16 +7654,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14_ta_set_candle_settings(CYTHON_UNUSE /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_17_ta_restore_candle_default_settings(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_19_ta_restore_candle_default_settings(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16_ta_restore_candle_default_settings, "_ta_restore_candle_default_settings(settingtype)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_17_ta_restore_candle_default_settings = {"_ta_restore_candle_default_settings", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17_ta_restore_candle_default_settings, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16_ta_restore_candle_default_settings}; -static PyObject *__pyx_pw_5talib_7_ta_lib_17_ta_restore_candle_default_settings(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18_ta_restore_candle_default_settings, "_ta_restore_candle_default_settings(settingtype)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_19_ta_restore_candle_default_settings = {"_ta_restore_candle_default_settings", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_19_ta_restore_candle_default_settings, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18_ta_restore_candle_default_settings}; +static PyObject *__pyx_pw_5talib_7_ta_lib_19_ta_restore_candle_default_settings(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -7122,32 +7693,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_settingtype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(1, 129, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(1, 191, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 129, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 191, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_restore_candle_default_settings", 0) < (0)) __PYX_ERR(1, 129, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_restore_candle_default_settings", 0) < (0)) __PYX_ERR(1, 191, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_restore_candle_default_settings", 1, 1, 1, i); __PYX_ERR(1, 129, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_restore_candle_default_settings", 1, 1, 1, i); __PYX_ERR(1, 191, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 129, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 191, __pyx_L3_error) } __pyx_v_settingtype = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_ta_restore_candle_default_settings", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 129, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_ta_restore_candle_default_settings", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 191, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -7158,7 +7729,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_16_ta_restore_candle_default_settings(__pyx_self, __pyx_v_settingtype); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18_ta_restore_candle_default_settings(__pyx_self, __pyx_v_settingtype); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -7168,7 +7739,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds 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) { +static PyObject *__pyx_pf_5talib_7_ta_lib_18_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 @@ -7179,10 +7750,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16_ta_restore_candle_default_settings( int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_ta_restore_candle_default_settings", 0); - __pyx_t_1 = __Pyx_PyLong_As_TA_CandleSettingType(__pyx_v_settingtype); if (unlikely((__pyx_t_1 == ((TA_CandleSettingType)-1)) && PyErr_Occurred())) __PYX_ERR(1, 131, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_As_TA_CandleSettingType(__pyx_v_settingtype); if (unlikely((__pyx_t_1 == ((TA_CandleSettingType)-1)) && PyErr_Occurred())) __PYX_ERR(1, 193, __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_mstate_global->__pyx_n_u_TA_RestoreCandleDefaultSettings, __pyx_v_ret_code, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 132, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RestoreCandleDefaultSettings, __pyx_v_ret_code, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 194, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -7792,16 +8363,239 @@ static PyArrayObject *__pyx_f_5talib_7_ta_lib_make_int_array(npy_intp __pyx_v_le /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_19ACCBANDS(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_21AC(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_20AC, "AC(ndarray high, ndarray low, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int signalperiod=-0x80000000)\n\nAC(high, low[, fastperiod=?, slowperiod=?, signalperiod=?])\n\nAccelerator/Decelerator Oscillator (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low']\nParameters:\n fastperiod: 5\n slowperiod: 34\n signalperiod: 5\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_21AC = {"AC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21AC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_20AC}; +static PyObject *__pyx_pw_5talib_7_ta_lib_21AC(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + int __pyx_v_signalperiod; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[5] = {0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("AC (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 142, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 142, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 142, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 142, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 142, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 142, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "AC", 0) < (0)) __PYX_ERR(4, 142, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("AC", 0, 2, 5, i); __PYX_ERR(4, 142, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 142, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 142, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 142, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 142, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 142, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 144, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)((int)-2147483648)); + } + if (values[3]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 144, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)((int)-2147483648)); + } + if (values[4]) { + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 144, __pyx_L3_error) + } else { + __pyx_v_signalperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("AC", 0, 2, 5, __pyx_nargs); __PYX_ERR(4, 142, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 144, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 144, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_20AC(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_20AC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod) { + 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("AC", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 165, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 166, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 167, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 168, __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_AC_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(4, 171, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_AC(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 173, __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.AC", __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_23ACCBANDS(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18ACCBANDS, "ACCBANDS(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nACCBANDS(high, low, close[, timeperiod=?])\n\nAcceleration Bands (Overlap Studies)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n timeperiod: 20\nOutputs:\n upperband\n middleband\n lowerband"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_19ACCBANDS = {"ACCBANDS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_19ACCBANDS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18ACCBANDS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_19ACCBANDS(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22ACCBANDS, "ACCBANDS(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nACCBANDS(high, low, close[, timeperiod=?])\n\nAcceleration Bands (Overlap Studies)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n timeperiod: 20\nOutputs:\n upperband\n middleband\n lowerband"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_23ACCBANDS = {"ACCBANDS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_23ACCBANDS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_22ACCBANDS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_23ACCBANDS(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -7834,46 +8628,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 142, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 176, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 142, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 176, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 142, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 176, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 142, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 176, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 142, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 176, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ACCBANDS", 0) < (0)) __PYX_ERR(4, 142, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ACCBANDS", 0) < (0)) __PYX_ERR(4, 176, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ACCBANDS", 0, 3, 4, i); __PYX_ERR(4, 142, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ACCBANDS", 0, 3, 4, i); __PYX_ERR(4, 176, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 142, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 176, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 142, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 176, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 142, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 176, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 142, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 176, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -7882,14 +8676,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = ((PyArrayObject *)values[1]); __pyx_v_close = ((PyArrayObject *)values[2]); if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 144, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 178, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ACCBANDS", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 142, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("ACCBANDS", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 176, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -7900,10 +8694,10 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 144, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 144, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 144, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_18ACCBANDS(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 178, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 178, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 178, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_22ACCBANDS(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -7922,7 +8716,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_18ACCBANDS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_22ACCBANDS(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; @@ -7946,64 +8740,64 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18ACCBANDS(CYTHON_UNUSED PyObject *__p __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 167, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 201, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 168, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 202, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 169, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 203, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 170, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 204, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 171, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 205, __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_ACCBANDS_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(4, 174, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 208, __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(4, 175, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 209, __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(4, 176, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 210, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreallowerband = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_ACCBANDS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outrealupperband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outrealmiddleband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreallowerband)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACCBANDS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 178, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACCBANDS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 212, __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(4, 179, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 213, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_outrealupperband); __Pyx_GIVEREF((PyObject *)__pyx_v_outrealupperband); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outrealupperband)) != (0)) __PYX_ERR(4, 179, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outrealupperband)) != (0)) __PYX_ERR(4, 213, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_outrealmiddleband); __Pyx_GIVEREF((PyObject *)__pyx_v_outrealmiddleband); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outrealmiddleband)) != (0)) __PYX_ERR(4, 179, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outrealmiddleband)) != (0)) __PYX_ERR(4, 213, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_outreallowerband); __Pyx_GIVEREF((PyObject *)__pyx_v_outreallowerband); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_outreallowerband)) != (0)) __PYX_ERR(4, 179, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_outreallowerband)) != (0)) __PYX_ERR(4, 213, __pyx_L1_error); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; @@ -8028,16 +8822,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18ACCBANDS(CYTHON_UNUSED PyObject *__p /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_21ACOS(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_25ACOS(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_20ACOS, "ACOS(ndarray real)\n\nACOS(real)\n\nVector Trigonometric ACos (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_21ACOS = {"ACOS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21ACOS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_20ACOS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_21ACOS(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24ACOS, "ACOS(ndarray real)\n\nACOS(real)\n\nVector Trigonometric ACos (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_25ACOS = {"ACOS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_25ACOS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_24ACOS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_25ACOS(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -8067,32 +8861,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 181, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 215, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 181, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 215, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ACOS", 0) < (0)) __PYX_ERR(4, 181, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ACOS", 0) < (0)) __PYX_ERR(4, 215, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ACOS", 1, 1, 1, i); __PYX_ERR(4, 181, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ACOS", 1, 1, 1, i); __PYX_ERR(4, 215, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 181, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 215, __pyx_L3_error) } __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ACOS", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 181, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("ACOS", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 215, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -8103,8 +8897,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 183, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_20ACOS(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 217, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_24ACOS(__pyx_self, __pyx_v_real); /* function exit code */ goto __pyx_L0; @@ -8123,7 +8917,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_20ACOS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_24ACOS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -8142,28 +8936,28 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20ACOS(CYTHON_UNUSED PyObject *__pyx_s __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(4, 200, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 202, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 236, __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(4, 205, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 239, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACOS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 207, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACOS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 241, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -8188,16 +8982,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20ACOS(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_23AD(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_27AD(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22AD, "AD(ndarray high, ndarray low, ndarray close, ndarray volume)\n\nAD(high, low, close, volume)\n\nChaikin A/D Line (Volume Indicators)\n\nInputs:\n prices: ['high', 'low', 'close', 'volume']\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_23AD = {"AD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_23AD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_22AD}; -static PyObject *__pyx_pw_5talib_7_ta_lib_23AD(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26AD, "AD(ndarray high, ndarray low, ndarray close, ndarray volume)\n\nAD(high, low, close, volume)\n\nChaikin A/D Line (Volume Indicators)\n\nInputs:\n prices: ['high', 'low', 'close', 'volume']\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_27AD = {"AD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_27AD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_26AD}; +static PyObject *__pyx_pw_5talib_7_ta_lib_27AD(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -8230,44 +9024,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 210, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 244, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 210, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 244, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 210, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 244, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 210, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 244, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 210, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 244, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "AD", 0) < (0)) __PYX_ERR(4, 210, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "AD", 0) < (0)) __PYX_ERR(4, 244, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("AD", 1, 4, 4, i); __PYX_ERR(4, 210, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("AD", 1, 4, 4, i); __PYX_ERR(4, 244, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 210, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 244, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 210, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 244, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 210, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 244, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 210, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 244, __pyx_L3_error) } __pyx_v_high = ((PyArrayObject *)values[0]); __pyx_v_low = ((PyArrayObject *)values[1]); @@ -8276,7 +9070,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("AD", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 210, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("AD", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 244, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -8287,11 +9081,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 212, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 212, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 212, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(4, 212, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_22AD(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 246, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 246, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 246, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(4, 246, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_26AD(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); /* function exit code */ goto __pyx_L0; @@ -8310,7 +9104,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_22AD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume) { +static PyObject *__pyx_pf_5talib_7_ta_lib_26AD(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; @@ -8333,44 +9127,44 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22AD(CYTHON_UNUSED PyObject *__pyx_sel __Pyx_INCREF((PyObject *)__pyx_v_close); __Pyx_INCREF((PyObject *)__pyx_v_volume); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 229, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 230, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 264, __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(4, 231, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 265, __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(4, 232, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 233, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 267, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 234, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 268, __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(4, 237, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 271, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 239, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -8398,16 +9192,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22AD(CYTHON_UNUSED PyObject *__pyx_sel /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_25ADD(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_29ADD(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24ADD, "ADD(ndarray real0, ndarray real1)\n\nADD(real0, real1)\n\nVector Arithmetic Add (Math Operators)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_25ADD = {"ADD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_25ADD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_24ADD}; -static PyObject *__pyx_pw_5talib_7_ta_lib_25ADD(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_28ADD, "ADD(ndarray real0, ndarray real1)\n\nADD(real0, real1)\n\nVector Arithmetic Add (Math Operators)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_29ADD = {"ADD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_29ADD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_28ADD}; +static PyObject *__pyx_pw_5talib_7_ta_lib_29ADD(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -8438,39 +9232,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 242, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 276, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 242, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 276, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 242, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 276, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ADD", 0) < (0)) __PYX_ERR(4, 242, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ADD", 0) < (0)) __PYX_ERR(4, 276, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ADD", 1, 2, 2, i); __PYX_ERR(4, 242, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ADD", 1, 2, 2, i); __PYX_ERR(4, 276, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 242, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 276, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 242, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 276, __pyx_L3_error) } __pyx_v_real0 = ((PyArrayObject *)values[0]); __pyx_v_real1 = ((PyArrayObject *)values[1]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ADD", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 242, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("ADD", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 276, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -8481,9 +9275,9 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(4, 244, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(4, 244, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_24ADD(__pyx_self, __pyx_v_real0, __pyx_v_real1); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(4, 278, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(4, 278, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_28ADD(__pyx_self, __pyx_v_real0, __pyx_v_real1); /* function exit code */ goto __pyx_L0; @@ -8502,7 +9296,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_24ADD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1) { +static PyObject *__pyx_pf_5talib_7_ta_lib_28ADD(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; @@ -8523,34 +9317,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24ADD(CYTHON_UNUSED PyObject *__pyx_se __Pyx_INCREF((PyObject *)__pyx_v_real0); __Pyx_INCREF((PyObject *)__pyx_v_real1); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 262, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 296, __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(4, 263, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 297, __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)-1L))) __PYX_ERR(4, 264, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 298, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 265, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 299, __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(4, 268, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 302, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 270, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 304, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -8576,16 +9370,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24ADD(CYTHON_UNUSED PyObject *__pyx_se /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_27ADOSC(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_31ADOSC(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26ADOSC, "ADOSC(ndarray high, ndarray low, ndarray close, ndarray volume, int fastperiod=-0x80000000, int slowperiod=-0x80000000)\n\nADOSC(high, low, close, volume[, fastperiod=?, slowperiod=?])\n\nChaikin A/D Oscillator (Volume Indicators)\n\nInputs:\n prices: ['high', 'low', 'close', 'volume']\nParameters:\n fastperiod: 3\n slowperiod: 10\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_27ADOSC = {"ADOSC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_27ADOSC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_26ADOSC}; -static PyObject *__pyx_pw_5talib_7_ta_lib_27ADOSC(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_30ADOSC, "ADOSC(ndarray high, ndarray low, ndarray close, ndarray volume, int fastperiod=-0x80000000, int slowperiod=-0x80000000)\n\nADOSC(high, low, close, volume[, fastperiod=?, slowperiod=?])\n\nChaikin A/D Oscillator (Volume Indicators)\n\nInputs:\n prices: ['high', 'low', 'close', 'volume']\nParameters:\n fastperiod: 3\n slowperiod: 10\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_31ADOSC = {"ADOSC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_31ADOSC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_30ADOSC}; +static PyObject *__pyx_pw_5talib_7_ta_lib_31ADOSC(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -8620,60 +9414,60 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 273, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 307, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 6: values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 273, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 307, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 273, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 307, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 273, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 307, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 273, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 307, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 273, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 307, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 273, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 307, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ADOSC", 0) < (0)) __PYX_ERR(4, 273, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ADOSC", 0) < (0)) __PYX_ERR(4, 307, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ADOSC", 0, 4, 6, i); __PYX_ERR(4, 273, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ADOSC", 0, 4, 6, i); __PYX_ERR(4, 307, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 6: values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 273, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 307, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 273, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 307, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 273, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 307, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 273, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 307, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 273, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 307, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 273, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 307, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -8683,19 +9477,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_close = ((PyArrayObject *)values[2]); __pyx_v_volume = ((PyArrayObject *)values[3]); if (values[4]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 275, __pyx_L3_error) + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 309, __pyx_L3_error) } else { __pyx_v_fastperiod = ((int)((int)-2147483648)); } if (values[5]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 275, __pyx_L3_error) + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 309, __pyx_L3_error) } else { __pyx_v_slowperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ADOSC", 0, 4, 6, __pyx_nargs); __PYX_ERR(4, 273, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("ADOSC", 0, 4, 6, __pyx_nargs); __PYX_ERR(4, 307, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -8706,11 +9500,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 275, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 275, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 275, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(4, 275, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_26ADOSC(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, __pyx_v_fastperiod, __pyx_v_slowperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 309, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 309, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 309, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(4, 309, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_30ADOSC(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, __pyx_v_fastperiod, __pyx_v_slowperiod); /* function exit code */ goto __pyx_L0; @@ -8729,7 +9523,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_26ADOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_fastperiod, int __pyx_v_slowperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_30ADOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_fastperiod, int __pyx_v_slowperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -8752,44 +9546,44 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26ADOSC(CYTHON_UNUSED PyObject *__pyx_ __Pyx_INCREF((PyObject *)__pyx_v_close); __Pyx_INCREF((PyObject *)__pyx_v_volume); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 295, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 329, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 296, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 330, __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(4, 297, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 331, __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(4, 298, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 332, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 299, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 333, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 300, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 334, __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(4, 303, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 337, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 305, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 339, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -8817,16 +9611,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26ADOSC(CYTHON_UNUSED PyObject *__pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_29ADX(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_33ADR(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_28ADX, "ADX(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nADX(high, low, close[, timeperiod=?])\n\nAverage Directional Movement Index (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_29ADX = {"ADX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_29ADX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_28ADX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_29ADX(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_32ADR, "ADR(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nADR(high, low[, timeperiod=?])\n\nAverage Day Range (Volatility Indicators)\n\nInputs:\n prices: ['high', 'low']\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_33ADR = {"ADR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_33ADR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_32ADR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_33ADR(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -8835,19 +9629,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds ) { PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("ADX (wrapper)", 0); + __Pyx_RefNannySetupContext("ADR (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -8857,78 +9650,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 308, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 342, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 308, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 308, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 342, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 308, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 342, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 308, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 342, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ADX", 0) < (0)) __PYX_ERR(4, 308, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ADX", 0, 3, 4, i); __PYX_ERR(4, 308, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ADR", 0) < (0)) __PYX_ERR(4, 342, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ADR", 0, 2, 3, i); __PYX_ERR(4, 342, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 308, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 308, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 342, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 308, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 342, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 308, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 342, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_high = ((PyArrayObject *)values[0]); __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 310, __pyx_L3_error) + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 344, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ADX", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 308, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("ADR", 0, 2, 3, __pyx_nargs); __PYX_ERR(4, 342, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ADX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ADR", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 310, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 310, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 310, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_28ADX(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 344, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 344, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_32ADR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -8947,7 +9732,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_28ADX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_32ADR(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; @@ -8964,44 +9749,38 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_28ADX(CYTHON_UNUSED PyObject *__pyx_se int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("ADX", 0); + __Pyx_RefNannySetupContext("ADR", 0); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 329, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 363, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 330, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 364, __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(4, 331, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 332, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 365, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 333, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 366, __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_v_lookback = (__pyx_v_begidx + TA_ADR_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(4, 336, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 369, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_ADR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 338, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 371, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -9014,13 +9793,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_28ADX(CYTHON_UNUSED PyObject *__pyx_se /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.ADX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ADR", __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; @@ -9028,16 +9806,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_28ADX(CYTHON_UNUSED PyObject *__pyx_se /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_31ADXR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_35ADX(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_30ADXR, "ADXR(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nADXR(high, low, close[, timeperiod=?])\n\nAverage Directional Movement Index Rating (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_31ADXR = {"ADXR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_31ADXR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_30ADXR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_31ADXR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_34ADX, "ADX(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nADX(high, low, close[, timeperiod=?])\n\nAverage Directional Movement Index (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_35ADX = {"ADX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_35ADX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_34ADX}; +static PyObject *__pyx_pw_5talib_7_ta_lib_35ADX(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -9058,7 +9836,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("ADXR (wrapper)", 0); + __Pyx_RefNannySetupContext("ADX (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -9070,46 +9848,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 341, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 374, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 341, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 374, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 341, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 374, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 341, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 374, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 341, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 374, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ADXR", 0) < (0)) __PYX_ERR(4, 341, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ADX", 0) < (0)) __PYX_ERR(4, 374, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ADXR", 0, 3, 4, i); __PYX_ERR(4, 341, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ADX", 0, 3, 4, i); __PYX_ERR(4, 374, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 341, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 374, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 341, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 374, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 341, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 374, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 341, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 374, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -9118,28 +9896,28 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = ((PyArrayObject *)values[1]); __pyx_v_close = ((PyArrayObject *)values[2]); if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 343, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 376, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ADXR", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 341, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("ADX", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 374, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ADXR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 343, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 343, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 343, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_30ADXR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 376, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 376, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 376, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_34ADX(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -9158,7 +9936,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_30ADXR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_34ADX(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; @@ -9175,44 +9953,44 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_30ADXR(CYTHON_UNUSED PyObject *__pyx_s int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("ADXR", 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(4, 362, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 395, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 363, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 396, __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(4, 364, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 365, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 398, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 366, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 399, __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_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(4, 369, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 402, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_ADX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADXR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 371, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 404, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -9225,7 +10003,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_30ADXR(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.ADXR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ADX", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -9239,221 +10017,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_30ADXR(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_33APO(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_32APO, "APO(ndarray real, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int matype=0)\n\nAPO(real[, fastperiod=?, slowperiod=?, matype=?])\n\nAbsolute Price Oscillator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastperiod: 12\n slowperiod: 26\n matype: 0 (Simple Moving Average)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_33APO = {"APO", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_33APO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_32APO}; -static PyObject *__pyx_pw_5talib_7_ta_lib_33APO(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_fastperiod; - int __pyx_v_slowperiod; - int __pyx_v_matype; - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("APO (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 374, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 374, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 374, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 374, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 374, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "APO", 0) < (0)) __PYX_ERR(4, 374, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("APO", 0, 1, 4, i); __PYX_ERR(4, 374, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 374, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 374, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 374, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 374, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 376, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)((int)-2147483648)); - } - if (values[2]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 376, __pyx_L3_error) - } else { - __pyx_v_slowperiod = ((int)((int)-2147483648)); - } - if (values[3]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 376, __pyx_L3_error) - } else { - __pyx_v_matype = ((int)((int)0)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("APO", 0, 1, 4, __pyx_nargs); __PYX_ERR(4, 374, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.APO", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 376, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_32APO(__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; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_32APO(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(4, 397, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 399, __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(4, 402, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_APO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 404, __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_35AROON(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_37ADXR(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_34AROON, "AROON(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nAROON(high, low[, timeperiod=?])\n\nAroon (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low']\nParameters:\n timeperiod: 14\nOutputs:\n aroondown\n aroonup"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_35AROON = {"AROON", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_35AROON, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_34AROON}; -static PyObject *__pyx_pw_5talib_7_ta_lib_35AROON(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_36ADXR, "ADXR(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nADXR(high, low, close[, timeperiod=?])\n\nAverage Directional Movement Index Rating (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_37ADXR = {"ADXR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_37ADXR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_36ADXR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_37ADXR(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -9462,18 +10035,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds ) { PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("AROON (wrapper)", 0); + __Pyx_RefNannySetupContext("ADXR (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -9483,11 +10057,15 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 407, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 407, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 407, __pyx_L3_error) @@ -9504,17 +10082,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "AROON", 0) < (0)) __PYX_ERR(4, 407, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("AROON", 0, 2, 3, i); __PYX_ERR(4, 407, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ADXR", 0) < (0)) __PYX_ERR(4, 407, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ADXR", 0, 3, 4, i); __PYX_ERR(4, 407, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 407, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 407, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 407, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); @@ -9525,28 +10105,30 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } __pyx_v_high = ((PyArrayObject *)values[0]); __pyx_v_low = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 409, __pyx_L3_error) + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 409, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("AROON", 0, 2, 3, __pyx_nargs); __PYX_ERR(4, 407, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("ADXR", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 407, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.AROON", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 409, __pyx_L1_error) if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 409, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_34AROON(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 409, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_36ADXR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -9565,7 +10147,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_34AROON(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_36ADXR(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; @@ -9573,8 +10155,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_34AROON(CYTHON_UNUSED PyObject *__pyx_ TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outaroondown = 0; - PyArrayObject *__pyx_v_outaroonup = 0; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -9583,70 +10164,63 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_34AROON(CYTHON_UNUSED PyObject *__pyx_ int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("AROON", 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(4, 430, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 428, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 431, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 429, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 432, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 430, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 431, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 433, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 432, __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(4, 436, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outaroondown = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __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(4, 437, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outaroonup = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_AROON(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outaroondown)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outaroonup)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_ADXR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROON, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 439, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADXR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 437, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 440, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_outaroondown); - __Pyx_GIVEREF((PyObject *)__pyx_v_outaroondown); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outaroondown)) != (0)) __PYX_ERR(4, 440, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outaroonup); - __Pyx_GIVEREF((PyObject *)__pyx_v_outaroonup); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outaroonup)) != (0)) __PYX_ERR(4, 440, __pyx_L1_error); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; + __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.AROON", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ADXR", __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_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; @@ -9654,16 +10228,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_34AROON(CYTHON_UNUSED PyObject *__pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_37AROONOSC(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_39AO(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_36AROONOSC, "AROONOSC(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nAROONOSC(high, low[, timeperiod=?])\n\nAroon Oscillator (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low']\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_37AROONOSC = {"AROONOSC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_37AROONOSC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_36AROONOSC}; -static PyObject *__pyx_pw_5talib_7_ta_lib_37AROONOSC(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_38AO, "AO(ndarray high, ndarray low, int fastperiod=-0x80000000, int slowperiod=-0x80000000)\n\nAO(high, low[, fastperiod=?, slowperiod=?])\n\nAwesome Oscillator (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low']\nParameters:\n fastperiod: 5\n slowperiod: 34\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_39AO = {"AO", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_39AO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_38AO}; +static PyObject *__pyx_pw_5talib_7_ta_lib_39AO(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -9672,18 +10246,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds ) { PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; - int __pyx_v_timeperiod; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("AROONOSC (wrapper)", 0); + __Pyx_RefNannySetupContext("AO (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -9693,42 +10268,50 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 442, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 440, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 440, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 442, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 440, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 442, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 440, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 442, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 440, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "AROONOSC", 0) < (0)) __PYX_ERR(4, 442, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "AO", 0) < (0)) __PYX_ERR(4, 440, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("AROONOSC", 0, 2, 3, i); __PYX_ERR(4, 442, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("AO", 0, 2, 4, i); __PYX_ERR(4, 440, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 440, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 442, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 440, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 442, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 440, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 442, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 440, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -9736,27 +10319,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_high = ((PyArrayObject *)values[0]); __pyx_v_low = ((PyArrayObject *)values[1]); if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 444, __pyx_L3_error) + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 442, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + __pyx_v_fastperiod = ((int)((int)-2147483648)); + } + if (values[3]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 442, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("AROONOSC", 0, 2, 3, __pyx_nargs); __PYX_ERR(4, 442, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("AO", 0, 2, 4, __pyx_nargs); __PYX_ERR(4, 440, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.AROONOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.AO", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 444, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 444, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_36AROONOSC(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 442, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 442, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_38AO(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_fastperiod, __pyx_v_slowperiod); /* function exit code */ goto __pyx_L0; @@ -9775,7 +10363,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_36AROONOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_38AO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -9792,38 +10380,38 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_36AROONOSC(CYTHON_UNUSED PyObject *__p int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("AROONOSC", 0); + __Pyx_RefNannySetupContext("AO", 0); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 463, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 462, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 464, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 463, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 465, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 464, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 466, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 465, __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_v_lookback = (__pyx_v_begidx + TA_AO_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(4, 469, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 468, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_AO(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROONOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 471, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 470, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -9836,7 +10424,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_36AROONOSC(CYTHON_UNUSED PyObject *__p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.AROONOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.AO", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -9849,16 +10437,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_36AROONOSC(CYTHON_UNUSED PyObject *__p /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_39ASIN(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_41APO(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_38ASIN, "ASIN(ndarray real)\n\nASIN(real)\n\nVector Trigonometric ASin (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_39ASIN = {"ASIN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_39ASIN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_38ASIN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_39ASIN(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_40APO, "APO(ndarray real, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int matype=1)\n\nAPO(real[, fastperiod=?, slowperiod=?, matype=?])\n\nAbsolute Price Oscillator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastperiod: 12\n slowperiod: 26\n matype: 1 (Exponential Moving Average)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_41APO = {"APO", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_41APO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_40APO}; +static PyObject *__pyx_pw_5talib_7_ta_lib_41APO(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -9866,17 +10454,20 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyArrayObject *__pyx_v_real = 0; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + int __pyx_v_matype; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("ASIN (wrapper)", 0); + __Pyx_RefNannySetupContext("APO (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -9886,46 +10477,88 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 474, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 473, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 473, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 473, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 473, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 474, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 473, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ASIN", 0) < (0)) __PYX_ERR(4, 474, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "APO", 0) < (0)) __PYX_ERR(4, 473, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ASIN", 1, 1, 1, i); __PYX_ERR(4, 474, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("APO", 0, 1, 4, i); __PYX_ERR(4, 473, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 474, __pyx_L3_error) + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 473, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 473, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 473, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 473, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 475, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 475, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)((int)-2147483648)); + } + if (values[3]) { + __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 475, __pyx_L3_error) + } else { + __pyx_v_matype = ((int)((int)1)); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ASIN", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 474, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("APO", 0, 1, 4, __pyx_nargs); __PYX_ERR(4, 473, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ASIN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 476, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_38ASIN(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 475, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_40APO(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype); /* function exit code */ goto __pyx_L0; @@ -9944,7 +10577,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_38ASIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_40APO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -9960,31 +10593,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_38ASIN(CYTHON_UNUSED PyObject *__pyx_s int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("ASIN", 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(4, 493, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 496, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 495, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 498, __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_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(4, 498, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 501, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_APO(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ASIN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 500, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_APO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 503, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -9997,7 +10630,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_38ASIN(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.ASIN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.APO", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -10009,34 +10642,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_38ASIN(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_41ATAN(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_43AROON(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_40ATAN, "ATAN(ndarray real)\n\nATAN(real)\n\nVector Trigonometric ATan (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_41ATAN = {"ATAN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_41ATAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_40ATAN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_41ATAN(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_42AROON, "AROON(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nAROON(high, low[, timeperiod=?])\n\nAroon (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low']\nParameters:\n timeperiod: 14\nOutputs:\n aroondown\n aroonup"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_43AROON = {"AROON", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_43AROON, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_42AROON}; +static PyObject *__pyx_pw_5talib_7_ta_lib_43AROON(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("ATAN (wrapper)", 0); + __Pyx_RefNannySetupContext("AROON (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -10046,46 +10681,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 503, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 506, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 506, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 506, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 503, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 506, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ATAN", 0) < (0)) __PYX_ERR(4, 503, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ATAN", 1, 1, 1, i); __PYX_ERR(4, 503, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "AROON", 0) < (0)) __PYX_ERR(4, 506, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("AROON", 0, 2, 3, i); __PYX_ERR(4, 506, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 503, __pyx_L3_error) + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 506, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 506, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 506, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 508, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ATAN", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 503, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("AROON", 0, 2, 3, __pyx_nargs); __PYX_ERR(4, 506, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ATAN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.AROON", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 505, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_40ATAN(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 508, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 508, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_42AROON(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -10104,7 +10763,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_40ATAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_42AROON(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -10112,56 +10771,80 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_40ATAN(CYTHON_UNUSED PyObject *__pyx_s TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outaroondown = 0; + PyArrayObject *__pyx_v_outaroonup = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + 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("ATAN", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __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_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 522, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 529, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 530, __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_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 524, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 531, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 532, __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_ATAN_Lookback()); + __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(4, 527, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 535, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outaroondown = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_ATAN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 536, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outaroonup = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 529, __pyx_L1_error) + __pyx_v_retCode = TA_AROON(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outaroondown)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outaroonup)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROON, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 538, __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); + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 539, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_outaroondown); + __Pyx_GIVEREF((PyObject *)__pyx_v_outaroondown); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outaroondown)) != (0)) __PYX_ERR(4, 539, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outaroonup); + __Pyx_GIVEREF((PyObject *)__pyx_v_outaroonup); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outaroonup)) != (0)) __PYX_ERR(4, 539, __pyx_L1_error); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; 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_AddTraceback("talib._ta_lib.AROON", __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_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; @@ -10169,16 +10852,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_40ATAN(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_43ATR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_45AROONOSC(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_42ATR, "ATR(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nATR(high, low, close[, timeperiod=?])\n\nAverage True Range (Volatility Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_43ATR = {"ATR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_43ATR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_42ATR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_43ATR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_44AROONOSC, "AROONOSC(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nAROONOSC(high, low[, timeperiod=?])\n\nAroon Oscillator (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low']\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_45AROONOSC = {"AROONOSC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_45AROONOSC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_44AROONOSC}; +static PyObject *__pyx_pw_5talib_7_ta_lib_45AROONOSC(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -10187,19 +10870,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds ) { PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("ATR (wrapper)", 0); + __Pyx_RefNannySetupContext("AROONOSC (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -10209,78 +10891,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 532, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 541, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 532, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 532, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 541, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 532, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 541, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 532, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 541, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ATR", 0) < (0)) __PYX_ERR(4, 532, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ATR", 0, 3, 4, i); __PYX_ERR(4, 532, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "AROONOSC", 0) < (0)) __PYX_ERR(4, 541, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("AROONOSC", 0, 2, 3, i); __PYX_ERR(4, 541, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 532, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 532, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 541, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 532, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 541, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 532, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 541, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_high = ((PyArrayObject *)values[0]); __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 534, __pyx_L3_error) + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 543, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ATR", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 532, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("AROONOSC", 0, 2, 3, __pyx_nargs); __PYX_ERR(4, 541, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ATR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 534, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 534, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 534, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_42ATR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 543, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 543, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_44AROONOSC(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -10299,7 +10973,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_42ATR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_44AROONOSC(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; @@ -10316,44 +10990,38 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_42ATR(CYTHON_UNUSED PyObject *__pyx_se int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("ATR", 0); + __Pyx_RefNannySetupContext("AROONOSC", 0); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 553, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 562, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 554, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 563, __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(4, 555, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 556, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 564, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 557, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 565, __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_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(4, 560, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 568, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_AROONOSC(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 562, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROONOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 570, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -10366,13 +11034,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_42ATR(CYTHON_UNUSED PyObject *__pyx_se /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.ATR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.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_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -10380,37 +11047,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_42ATR(CYTHON_UNUSED PyObject *__pyx_se /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_45AVGPRICE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_47ASIN(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_44AVGPRICE, "AVGPRICE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nAVGPRICE(open, high, low, close)\n\nAverage Price (Price Transform)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_45AVGPRICE = {"AVGPRICE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_45AVGPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_44AVGPRICE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_45AVGPRICE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_46ASIN, "ASIN(ndarray real)\n\nASIN(real)\n\nVector Trigonometric ASin (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_47ASIN = {"ASIN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_47ASIN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_46ASIN}; +static PyObject *__pyx_pw_5talib_7_ta_lib_47ASIN(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + PyArrayObject *__pyx_v_real = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("AVGPRICE (wrapper)", 0); + __Pyx_RefNannySetupContext("ASIN (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -10420,70 +11084,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 565, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 573, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 565, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 565, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 565, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 565, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 573, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "AVGPRICE", 0) < (0)) __PYX_ERR(4, 565, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("AVGPRICE", 1, 4, 4, i); __PYX_ERR(4, 565, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ASIN", 0) < (0)) __PYX_ERR(4, 573, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ASIN", 1, 1, 1, i); __PYX_ERR(4, 573, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 565, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 565, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 565, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 565, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 573, __pyx_L3_error) } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("AVGPRICE", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 565, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("ASIN", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 573, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.AVGPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ASIN", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 567, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 567, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 567, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 567, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_44AVGPRICE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 575, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_46ASIN(__pyx_self, __pyx_v_real); /* function exit code */ goto __pyx_L0; @@ -10502,7 +11142,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_44AVGPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_46ASIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -10514,55 +11154,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_44AVGPRICE(CYTHON_UNUSED PyObject *__p PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + npy_int __pyx_t_2; 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(4, 584, __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(4, 585, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 586, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("ASIN", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 587, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 592, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 588, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 589, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 594, __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_AVGPRICE_Lookback()); + __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(4, 592, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 597, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_ASIN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 594, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ASIN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 599, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -10575,14 +11195,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_44AVGPRICE(CYTHON_UNUSED PyObject *__p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.AVGPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ASIN", __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_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -10590,16 +11207,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_44AVGPRICE(CYTHON_UNUSED PyObject *__p /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_47AVGDEV(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_49ATAN(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_46AVGDEV, "AVGDEV(ndarray real, int timeperiod=-0x80000000)\n\nAVGDEV(real[, timeperiod=?])\n\nAverage Deviation (Price Transform)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_47AVGDEV = {"AVGDEV", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_47AVGDEV, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_46AVGDEV}; -static PyObject *__pyx_pw_5talib_7_ta_lib_47AVGDEV(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_48ATAN, "ATAN(ndarray real)\n\nATAN(real)\n\nVector Trigonometric ATan (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_49ATAN = {"ATAN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_49ATAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_48ATAN}; +static PyObject *__pyx_pw_5talib_7_ta_lib_49ATAN(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -10607,18 +11224,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("AVGDEV (wrapper)", 0); + __Pyx_RefNannySetupContext("ATAN (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -10628,62 +11244,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 597, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 602, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 597, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 597, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 602, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "AVGDEV", 0) < (0)) __PYX_ERR(4, 597, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ATAN", 0) < (0)) __PYX_ERR(4, 602, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("AVGDEV", 0, 1, 2, i); __PYX_ERR(4, 597, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ATAN", 1, 1, 1, i); __PYX_ERR(4, 602, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 597, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 597, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 602, __pyx_L3_error) } __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 599, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("AVGDEV", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 597, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("ATAN", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 602, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.AVGDEV", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ATAN", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 599, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_46AVGDEV(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 604, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_48ATAN(__pyx_self, __pyx_v_real); /* function exit code */ goto __pyx_L0; @@ -10702,7 +11302,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_46AVGDEV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_48ATAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -10718,31 +11318,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_46AVGDEV(CYTHON_UNUSED PyObject *__pyx int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("AVGDEV", 0); + __Pyx_RefNannySetupContext("ATAN", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 618, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 621, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 620, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 623, __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_AVGDEV_Lookback(__pyx_v_timeperiod)); + __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(4, 623, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 626, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_AVGDEV(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_ATAN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGDEV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 625, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 628, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -10755,7 +11355,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_46AVGDEV(CYTHON_UNUSED PyObject *__pyx /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.AVGDEV", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ATAN", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -10767,38 +11367,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_46AVGDEV(CYTHON_UNUSED PyObject *__pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_49BBANDS(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_51ATR(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_48BBANDS, "BBANDS(ndarray real, int timeperiod=-0x80000000, double nbdevup=-4e37, double nbdevdn=-4e37, int matype=0)\n\nBBANDS(real[, timeperiod=?, nbdevup=?, nbdevdn=?, matype=?])\n\nBollinger Bands (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 5\n nbdevup: 2.0\n nbdevdn: 2.0\n matype: 0 (Simple Moving Average)\nOutputs:\n upperband\n middleband\n lowerband"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_49BBANDS = {"BBANDS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_49BBANDS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_48BBANDS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_49BBANDS(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_50ATR, "ATR(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nATR(high, low, close[, timeperiod=?])\n\nAverage True Range (Volatility Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_51ATR = {"ATR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_51ATR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_50ATR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_51ATR(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; int __pyx_v_timeperiod; - double __pyx_v_nbdevup; - double __pyx_v_nbdevdn; - int __pyx_v_matype; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("BBANDS (wrapper)", 0); + __Pyx_RefNannySetupContext("ATR (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -10808,101 +11407,78 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdevup,&__pyx_mstate_global->__pyx_n_u_nbdevdn,&__pyx_mstate_global->__pyx_n_u_matype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 628, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 631, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 628, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 628, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 631, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 628, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 631, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 628, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 631, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 628, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 631, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "BBANDS", 0) < (0)) __PYX_ERR(4, 628, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("BBANDS", 0, 1, 5, i); __PYX_ERR(4, 628, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ATR", 0) < (0)) __PYX_ERR(4, 631, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ATR", 0, 3, 4, i); __PYX_ERR(4, 631, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 628, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 628, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 631, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 628, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 631, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 628, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 631, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 628, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 631, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 630, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - if (values[2]) { - __pyx_v_nbdevup = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdevup == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 630, __pyx_L3_error) - } else { - __pyx_v_nbdevup = ((double)((double)-4e37)); - } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); if (values[3]) { - __pyx_v_nbdevdn = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_nbdevdn == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 630, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 633, __pyx_L3_error) } else { - __pyx_v_nbdevdn = ((double)((double)-4e37)); - } - if (values[4]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 630, __pyx_L3_error) - } else { - __pyx_v_matype = ((int)((int)0)); + __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("BBANDS", 0, 1, 5, __pyx_nargs); __PYX_ERR(4, 628, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("ATR", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 631, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.BBANDS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ATR", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 630, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_48BBANDS(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 633, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 633, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 633, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_50ATR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -10921,7 +11497,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_48BBANDS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdevup, double __pyx_v_nbdevdn, int __pyx_v_matype) { +static PyObject *__pyx_pf_5talib_7_ta_lib_50ATR(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; @@ -10929,81 +11505,72 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_48BBANDS(CYTHON_UNUSED PyObject *__pyx TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outrealupperband = 0; - PyArrayObject *__pyx_v_outrealmiddleband = 0; - PyArrayObject *__pyx_v_outreallowerband = 0; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + 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("BBANDS", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __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_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 656, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 652, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 658, __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(4, 661, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 653, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outrealupperband = ((PyArrayObject *)__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 662, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 654, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outrealmiddleband = ((PyArrayObject *)__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 663, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 655, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 656, __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(4, 659, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreallowerband = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_BBANDS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outrealupperband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outrealmiddleband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreallowerband)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_ATR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BBANDS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 665, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 661, __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(4, 666, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_outrealupperband); - __Pyx_GIVEREF((PyObject *)__pyx_v_outrealupperband); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outrealupperband)) != (0)) __PYX_ERR(4, 666, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outrealmiddleband); - __Pyx_GIVEREF((PyObject *)__pyx_v_outrealmiddleband); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outrealmiddleband)) != (0)) __PYX_ERR(4, 666, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outreallowerband); - __Pyx_GIVEREF((PyObject *)__pyx_v_outreallowerband); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_outreallowerband)) != (0)) __PYX_ERR(4, 666, __pyx_L1_error); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; + __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.BBANDS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ATR", __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_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; @@ -11011,36 +11578,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_48BBANDS(CYTHON_UNUSED PyObject *__pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_51BETA(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_53AVGDEV(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_50BETA, "BETA(ndarray real0, ndarray real1, int timeperiod=-0x80000000)\n\nBETA(real0, real1[, timeperiod=?])\n\nBeta (Statistic Functions)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nParameters:\n timeperiod: 5\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_51BETA = {"BETA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_51BETA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_50BETA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_51BETA(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_52AVGDEV, "AVGDEV(ndarray real, int timeperiod=-0x80000000)\n\nAVGDEV(real[, timeperiod=?])\n\nAverage Deviation (Price Transform)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_53AVGDEV = {"AVGDEV", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_53AVGDEV, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_52AVGDEV}; +static PyObject *__pyx_pw_5talib_7_ta_lib_53AVGDEV(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real0 = 0; - PyArrayObject *__pyx_v_real1 = 0; + PyArrayObject *__pyx_v_real = 0; int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("BETA (wrapper)", 0); + __Pyx_RefNannySetupContext("AVGDEV (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -11050,70 +11616,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 668, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 664, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 668, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 668, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 664, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 668, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 664, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "BETA", 0) < (0)) __PYX_ERR(4, 668, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("BETA", 0, 2, 3, i); __PYX_ERR(4, 668, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "AVGDEV", 0) < (0)) __PYX_ERR(4, 664, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("AVGDEV", 0, 1, 2, i); __PYX_ERR(4, 664, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 668, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 668, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 664, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 668, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 664, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real0 = ((PyArrayObject *)values[0]); - __pyx_v_real1 = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 670, __pyx_L3_error) + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 666, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("BETA", 0, 2, 3, __pyx_nargs); __PYX_ERR(4, 668, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("AVGDEV", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 664, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.BETA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.AVGDEV", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(4, 670, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(4, 670, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_50BETA(__pyx_self, __pyx_v_real0, __pyx_v_real1, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 666, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_52AVGDEV(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -11132,7 +11690,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_50BETA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_52AVGDEV(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; @@ -11144,43 +11702,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_50BETA(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + npy_int __pyx_t_2; 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(4, 690, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("AVGDEV", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 691, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 685, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 692, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 693, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 687, __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_BETA_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_AVGDEV_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(4, 696, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 690, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_AVGDEV(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BETA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 698, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGDEV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 692, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -11193,12 +11743,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_50BETA(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.BETA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.AVGDEV", __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_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -11206,16 +11755,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_50BETA(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_53BOP(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_55AVGPRICE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_52BOP, "BOP(ndarray open, ndarray high, ndarray low, ndarray close)\n\nBOP(open, high, low, close)\n\nBalance Of Power (Momentum Indicators)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_53BOP = {"BOP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_53BOP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_52BOP}; -static PyObject *__pyx_pw_5talib_7_ta_lib_53BOP(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_54AVGPRICE, "AVGPRICE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nAVGPRICE(open, high, low, close)\n\nAverage Price (Price Transform)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_55AVGPRICE = {"AVGPRICE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_55AVGPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_54AVGPRICE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_55AVGPRICE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -11236,7 +11785,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("BOP (wrapper)", 0); + __Pyx_RefNannySetupContext("AVGPRICE (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -11248,44 +11797,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 701, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 695, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 701, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 695, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 701, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 695, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 701, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 695, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 701, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 695, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "BOP", 0) < (0)) __PYX_ERR(4, 701, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "AVGPRICE", 0) < (0)) __PYX_ERR(4, 695, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("BOP", 1, 4, 4, i); __PYX_ERR(4, 701, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("AVGPRICE", 1, 4, 4, i); __PYX_ERR(4, 695, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 701, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 695, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 701, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 695, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 701, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 695, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 701, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 695, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -11294,22 +11843,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("BOP", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 701, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("AVGPRICE", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 695, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.BOP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 703, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 703, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 703, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 703, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_52BOP(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 697, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 697, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 697, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 697, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_54AVGPRICE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -11328,7 +11877,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_52BOP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_54AVGPRICE(CYTHON_UNUSED 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; @@ -11345,50 +11894,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_52BOP(CYTHON_UNUSED PyObject *__pyx_se int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("BOP", 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(4, 720, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 714, __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(4, 721, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 715, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 722, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 716, __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(4, 723, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 717, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 724, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 718, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 725, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 719, __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_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(4, 728, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 722, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_AVGPRICE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BOP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 730, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 724, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -11401,7 +11950,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_52BOP(CYTHON_UNUSED PyObject *__pyx_se /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.BOP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.AVGPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -11416,37 +11965,38 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_52BOP(CYTHON_UNUSED PyObject *__pyx_se /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_55CCI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_57BBANDS(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_54CCI, "CCI(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nCCI(high, low, close[, timeperiod=?])\n\nCommodity Channel Index (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_55CCI = {"CCI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_55CCI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_54CCI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_55CCI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_56BBANDS, "BBANDS(ndarray real, int timeperiod=-0x80000000, double nbdevup=-4e37, double nbdevdn=-4e37, int matype=0)\n\nBBANDS(real[, timeperiod=?, nbdevup=?, nbdevdn=?, matype=?])\n\nBollinger Bands (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 20\n nbdevup: 2.0\n nbdevdn: 2.0\n matype: 0 (Simple Moving Average)\nOutputs:\n upperband\n middleband\n lowerband"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_57BBANDS = {"BBANDS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_57BBANDS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_56BBANDS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_57BBANDS(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + PyArrayObject *__pyx_v_real = 0; int __pyx_v_timeperiod; + double __pyx_v_nbdevup; + double __pyx_v_nbdevdn; + int __pyx_v_matype; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CCI (wrapper)", 0); + __Pyx_RefNannySetupContext("BBANDS (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -11456,78 +12006,101 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdevup,&__pyx_mstate_global->__pyx_n_u_nbdevdn,&__pyx_mstate_global->__pyx_n_u_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 733, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 727, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 727, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 733, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 727, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 733, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 727, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 733, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 727, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 733, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 727, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CCI", 0) < (0)) __PYX_ERR(4, 733, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CCI", 0, 3, 4, i); __PYX_ERR(4, 733, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "BBANDS", 0) < (0)) __PYX_ERR(4, 727, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("BBANDS", 0, 1, 5, i); __PYX_ERR(4, 727, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 727, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 733, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 727, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 733, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 727, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 733, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 727, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 733, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 727, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 735, __pyx_L3_error) + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 729, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } + if (values[2]) { + __pyx_v_nbdevup = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdevup == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 729, __pyx_L3_error) + } else { + __pyx_v_nbdevup = ((double)((double)-4e37)); + } + if (values[3]) { + __pyx_v_nbdevdn = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_nbdevdn == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 729, __pyx_L3_error) + } else { + __pyx_v_nbdevdn = ((double)((double)-4e37)); + } + if (values[4]) { + __pyx_v_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 729, __pyx_L3_error) + } else { + __pyx_v_matype = ((int)((int)0)); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CCI", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 733, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("BBANDS", 0, 1, 5, __pyx_nargs); __PYX_ERR(4, 727, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CCI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.BBANDS", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 735, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 735, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 735, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_54CCI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 729, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_56BBANDS(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype); /* function exit code */ goto __pyx_L0; @@ -11546,7 +12119,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_54CCI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_56BBANDS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdevup, double __pyx_v_nbdevdn, int __pyx_v_matype) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -11554,72 +12127,81 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_54CCI(CYTHON_UNUSED PyObject *__pyx_se TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outrealupperband = 0; + PyArrayObject *__pyx_v_outrealmiddleband = 0; + PyArrayObject *__pyx_v_outreallowerband = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + npy_int __pyx_t_2; 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(4, 754, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 755, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("BBANDS", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 756, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 755, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 757, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 758, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 757, __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_CCI_Lookback(__pyx_v_timeperiod)); + __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(4, 760, __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(4, 761, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outrealmiddleband = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CCI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 762, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outrealupperband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outrealmiddleband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreallowerband)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CCI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 763, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BBANDS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 764, __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); + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 765, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_outrealupperband); + __Pyx_GIVEREF((PyObject *)__pyx_v_outrealupperband); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outrealupperband)) != (0)) __PYX_ERR(4, 765, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outrealmiddleband); + __Pyx_GIVEREF((PyObject *)__pyx_v_outrealmiddleband); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outrealmiddleband)) != (0)) __PYX_ERR(4, 765, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outreallowerband); + __Pyx_GIVEREF((PyObject *)__pyx_v_outreallowerband); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_outreallowerband)) != (0)) __PYX_ERR(4, 765, __pyx_L1_error); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; 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_AddTraceback("talib._ta_lib.BBANDS", __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_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; @@ -11627,37 +12209,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_54CCI(CYTHON_UNUSED PyObject *__pyx_se /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_57CDL2CROWS(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_59BETA(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_56CDL2CROWS, "CDL2CROWS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL2CROWS(open, high, low, close)\n\nTwo Crows (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_57CDL2CROWS = {"CDL2CROWS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_57CDL2CROWS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_56CDL2CROWS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_57CDL2CROWS(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_58BETA, "BETA(ndarray real0, ndarray real1, int timeperiod=-0x80000000)\n\nBETA(real0, real1[, timeperiod=?])\n\nBeta (Statistic Functions)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nParameters:\n timeperiod: 5\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_59BETA = {"BETA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_59BETA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_58BETA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_59BETA(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + PyArrayObject *__pyx_v_real0 = 0; + PyArrayObject *__pyx_v_real1 = 0; + int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDL2CROWS (wrapper)", 0); + __Pyx_RefNannySetupContext("BETA (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -11667,70 +12248,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 766, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 767, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 766, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 766, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 767, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 766, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 767, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 766, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 767, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDL2CROWS", 0) < (0)) __PYX_ERR(4, 766, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDL2CROWS", 1, 4, 4, i); __PYX_ERR(4, 766, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "BETA", 0) < (0)) __PYX_ERR(4, 767, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("BETA", 0, 2, 3, i); __PYX_ERR(4, 767, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 766, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 766, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 766, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 766, __pyx_L3_error) + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 767, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 767, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 767, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real0 = ((PyArrayObject *)values[0]); + __pyx_v_real1 = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 769, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDL2CROWS", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 766, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("BETA", 0, 2, 3, __pyx_nargs); __PYX_ERR(4, 767, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDL2CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.BETA", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 768, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 768, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 768, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 768, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_56CDL2CROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(4, 769, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(4, 769, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_58BETA(__pyx_self, __pyx_v_real0, __pyx_v_real1, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -11749,7 +12330,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_56CDL2CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_58BETA(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; @@ -11757,7 +12338,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_56CDL2CROWS(CYTHON_UNUSED PyObject *__ TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -11766,70 +12347,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_56CDL2CROWS(CYTHON_UNUSED PyObject *__ int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDL2CROWS", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 785, __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(4, 786, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("BETA", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real0); + __Pyx_INCREF((PyObject *)__pyx_v_real1); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 787, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 789, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 788, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 790, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 789, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 791, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 790, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 792, __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_v_lookback = (__pyx_v_begidx + TA_BETA_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(4, 793, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 795, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDL2CROWS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_BETA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL2CROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 795, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BETA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 797, __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); + __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.CDL2CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.BETA", __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_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; @@ -11837,16 +12404,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_56CDL2CROWS(CYTHON_UNUSED PyObject *__ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_59CDL3BLACKCROWS(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_61BOP(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_58CDL3BLACKCROWS, "CDL3BLACKCROWS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3BLACKCROWS(open, high, low, close)\n\nThree Black Crows (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_59CDL3BLACKCROWS = {"CDL3BLACKCROWS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_59CDL3BLACKCROWS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_58CDL3BLACKCROWS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_59CDL3BLACKCROWS(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_60BOP, "BOP(ndarray open, ndarray high, ndarray low, ndarray close)\n\nBOP(open, high, low, close)\n\nBalance Of Power (Momentum Indicators)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_61BOP = {"BOP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_61BOP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_60BOP}; +static PyObject *__pyx_pw_5talib_7_ta_lib_61BOP(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -11867,7 +12434,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDL3BLACKCROWS (wrapper)", 0); + __Pyx_RefNannySetupContext("BOP (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -11879,44 +12446,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 798, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 800, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 798, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 800, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 798, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 800, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 798, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 800, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 798, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 800, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDL3BLACKCROWS", 0) < (0)) __PYX_ERR(4, 798, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "BOP", 0) < (0)) __PYX_ERR(4, 800, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDL3BLACKCROWS", 1, 4, 4, i); __PYX_ERR(4, 798, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("BOP", 1, 4, 4, i); __PYX_ERR(4, 800, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 798, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 800, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 798, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 800, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 798, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 800, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 798, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 800, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -11925,22 +12492,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDL3BLACKCROWS", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 798, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("BOP", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 800, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDL3BLACKCROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.BOP", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 800, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 800, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 800, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 800, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_58CDL3BLACKCROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 802, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 802, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 802, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 802, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_60BOP(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -11959,7 +12526,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_58CDL3BLACKCROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_60BOP(CYTHON_UNUSED 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; @@ -11967,7 +12534,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_58CDL3BLACKCROWS(CYTHON_UNUSED PyObjec TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -11976,66 +12543,66 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_58CDL3BLACKCROWS(CYTHON_UNUSED PyObjec int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDL3BLACKCROWS", 0); + __Pyx_RefNannySetupContext("BOP", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 817, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 819, __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(4, 818, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 820, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 819, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 821, __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(4, 820, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 822, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 821, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 823, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 822, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 824, __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_v_lookback = (__pyx_v_begidx + TA_BOP_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(4, 825, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 827, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDL3BLACKCROWS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_BOP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3BLACKCROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 827, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BOP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 829, __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); + __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.CDL3BLACKCROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.BOP", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); __Pyx_XDECREF((PyObject *)__pyx_v_open); __Pyx_XDECREF((PyObject *)__pyx_v_high); __Pyx_XDECREF((PyObject *)__pyx_v_low); @@ -12047,26 +12614,26 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_58CDL3BLACKCROWS(CYTHON_UNUSED PyObjec /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_61CDL3INSIDE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_63CCI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_60CDL3INSIDE, "CDL3INSIDE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3INSIDE(open, high, low, close)\n\nThree Inside Up/Down (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_61CDL3INSIDE = {"CDL3INSIDE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_61CDL3INSIDE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_60CDL3INSIDE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_61CDL3INSIDE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_62CCI, "CCI(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nCCI(high, low, close[, timeperiod=?])\n\nCommodity Channel Index (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_63CCI = {"CCI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_63CCI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_62CCI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_63CCI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -12077,7 +12644,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDL3INSIDE (wrapper)", 0); + __Pyx_RefNannySetupContext("CCI (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -12087,70 +12654,78 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 830, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 832, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 830, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 832, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 830, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 832, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 830, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 832, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 830, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 832, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDL3INSIDE", 0) < (0)) __PYX_ERR(4, 830, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDL3INSIDE", 1, 4, 4, i); __PYX_ERR(4, 830, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CCI", 0) < (0)) __PYX_ERR(4, 832, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CCI", 0, 3, 4, i); __PYX_ERR(4, 832, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 830, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 830, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 830, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 830, __pyx_L3_error) + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 832, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 832, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 832, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 832, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 834, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDL3INSIDE", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 830, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CCI", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 832, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDL3INSIDE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CCI", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 832, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 832, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 832, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 832, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_60CDL3INSIDE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 834, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 834, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 834, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_62CCI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -12169,7 +12744,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_60CDL3INSIDE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_62CCI(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; @@ -12177,7 +12752,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_60CDL3INSIDE(CYTHON_UNUSED PyObject *_ TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -12186,67 +12761,60 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_60CDL3INSIDE(CYTHON_UNUSED PyObject *_ int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDL3INSIDE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_RefNannySetupContext("CCI", 0); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 849, __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(4, 850, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 853, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 851, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 854, __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(4, 852, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 855, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 853, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 856, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 854, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 857, __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_v_lookback = (__pyx_v_begidx + TA_CCI_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(4, 857, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 860, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDL3INSIDE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CCI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3INSIDE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 859, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CCI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 862, __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); + __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.CDL3INSIDE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CCI", __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_outreal); __Pyx_XDECREF((PyObject *)__pyx_v_high); __Pyx_XDECREF((PyObject *)__pyx_v_low); __Pyx_XDECREF((PyObject *)__pyx_v_close); @@ -12257,16 +12825,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_60CDL3INSIDE(CYTHON_UNUSED PyObject *_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_63CDL3LINESTRIKE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_65CDL2CROWS(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_62CDL3LINESTRIKE, "CDL3LINESTRIKE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3LINESTRIKE(open, high, low, close)\n\nThree-Line Strike (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_63CDL3LINESTRIKE = {"CDL3LINESTRIKE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_63CDL3LINESTRIKE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_62CDL3LINESTRIKE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_63CDL3LINESTRIKE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_64CDL2CROWS, "CDL2CROWS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL2CROWS(open, high, low, close)\n\nTwo Crows (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_65CDL2CROWS = {"CDL2CROWS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_65CDL2CROWS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_64CDL2CROWS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_65CDL2CROWS(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -12287,7 +12855,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDL3LINESTRIKE (wrapper)", 0); + __Pyx_RefNannySetupContext("CDL2CROWS (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -12299,44 +12867,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 862, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 865, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 862, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 865, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 862, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 865, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 862, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 865, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 862, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 865, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDL3LINESTRIKE", 0) < (0)) __PYX_ERR(4, 862, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDL2CROWS", 0) < (0)) __PYX_ERR(4, 865, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDL3LINESTRIKE", 1, 4, 4, i); __PYX_ERR(4, 862, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDL2CROWS", 1, 4, 4, i); __PYX_ERR(4, 865, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 862, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 865, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 862, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 865, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 862, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 865, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 862, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 865, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -12345,22 +12913,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDL3LINESTRIKE", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 862, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDL2CROWS", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 865, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDL3LINESTRIKE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDL2CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 864, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 864, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 864, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 864, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_62CDL3LINESTRIKE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 867, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 867, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 867, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 867, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_64CDL2CROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -12379,7 +12947,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_62CDL3LINESTRIKE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_64CDL2CROWS(CYTHON_UNUSED 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; @@ -12396,50 +12964,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_62CDL3LINESTRIKE(CYTHON_UNUSED PyObjec int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDL3LINESTRIKE", 0); + __Pyx_RefNannySetupContext("CDL2CROWS", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 881, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 884, __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(4, 882, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 885, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 883, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 886, __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(4, 884, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 887, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 885, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 888, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 886, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 889, __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_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(4, 889, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 892, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDL2CROWS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3LINESTRIKE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 891, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL2CROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 894, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -12452,7 +13020,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_62CDL3LINESTRIKE(CYTHON_UNUSED PyObjec /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDL3LINESTRIKE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDL2CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -12467,16 +13035,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_62CDL3LINESTRIKE(CYTHON_UNUSED PyObjec /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_65CDL3OUTSIDE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_67CDL3BLACKCROWS(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_64CDL3OUTSIDE, "CDL3OUTSIDE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3OUTSIDE(open, high, low, close)\n\nThree Outside Up/Down (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_65CDL3OUTSIDE = {"CDL3OUTSIDE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_65CDL3OUTSIDE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_64CDL3OUTSIDE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_65CDL3OUTSIDE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_66CDL3BLACKCROWS, "CDL3BLACKCROWS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3BLACKCROWS(open, high, low, close)\n\nThree Black Crows (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_67CDL3BLACKCROWS = {"CDL3BLACKCROWS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_67CDL3BLACKCROWS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_66CDL3BLACKCROWS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_67CDL3BLACKCROWS(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -12497,7 +13065,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDL3OUTSIDE (wrapper)", 0); + __Pyx_RefNannySetupContext("CDL3BLACKCROWS (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -12509,44 +13077,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 894, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 897, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 894, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 897, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 894, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 897, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 894, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 897, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 894, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 897, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDL3OUTSIDE", 0) < (0)) __PYX_ERR(4, 894, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDL3BLACKCROWS", 0) < (0)) __PYX_ERR(4, 897, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDL3OUTSIDE", 1, 4, 4, i); __PYX_ERR(4, 894, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDL3BLACKCROWS", 1, 4, 4, i); __PYX_ERR(4, 897, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 894, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 897, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 894, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 897, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 894, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 897, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 894, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 897, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -12555,22 +13123,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDL3OUTSIDE", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 894, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDL3BLACKCROWS", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 897, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDL3OUTSIDE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDL3BLACKCROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 896, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 896, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 896, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 896, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_64CDL3OUTSIDE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 899, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 899, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 899, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 899, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_66CDL3BLACKCROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -12589,7 +13157,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_64CDL3OUTSIDE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_66CDL3BLACKCROWS(CYTHON_UNUSED 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; @@ -12606,50 +13174,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_64CDL3OUTSIDE(CYTHON_UNUSED PyObject * int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDL3OUTSIDE", 0); + __Pyx_RefNannySetupContext("CDL3BLACKCROWS", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 913, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 916, __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(4, 914, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 917, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 915, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 918, __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(4, 916, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 919, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 917, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 920, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 918, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 921, __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_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(4, 921, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 924, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDL3BLACKCROWS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3OUTSIDE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 923, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3BLACKCROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 926, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -12662,7 +13230,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_64CDL3OUTSIDE(CYTHON_UNUSED PyObject * /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDL3OUTSIDE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDL3BLACKCROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -12677,16 +13245,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_64CDL3OUTSIDE(CYTHON_UNUSED PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_67CDL3STARSINSOUTH(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_69CDL3INSIDE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_66CDL3STARSINSOUTH, "CDL3STARSINSOUTH(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3STARSINSOUTH(open, high, low, close)\n\nThree Stars In The South (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_67CDL3STARSINSOUTH = {"CDL3STARSINSOUTH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_67CDL3STARSINSOUTH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_66CDL3STARSINSOUTH}; -static PyObject *__pyx_pw_5talib_7_ta_lib_67CDL3STARSINSOUTH(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_68CDL3INSIDE, "CDL3INSIDE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3INSIDE(open, high, low, close)\n\nThree Inside Up/Down (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_69CDL3INSIDE = {"CDL3INSIDE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_69CDL3INSIDE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_68CDL3INSIDE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_69CDL3INSIDE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -12707,7 +13275,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDL3STARSINSOUTH (wrapper)", 0); + __Pyx_RefNannySetupContext("CDL3INSIDE (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -12719,44 +13287,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 926, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 929, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 926, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 929, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 926, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 929, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 926, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 929, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 926, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 929, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDL3STARSINSOUTH", 0) < (0)) __PYX_ERR(4, 926, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDL3INSIDE", 0) < (0)) __PYX_ERR(4, 929, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDL3STARSINSOUTH", 1, 4, 4, i); __PYX_ERR(4, 926, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDL3INSIDE", 1, 4, 4, i); __PYX_ERR(4, 929, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 926, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 929, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 926, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 929, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 926, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 929, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 926, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 929, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -12765,22 +13333,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDL3STARSINSOUTH", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 926, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDL3INSIDE", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 929, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDL3STARSINSOUTH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDL3INSIDE", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 928, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 928, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 928, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 928, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_66CDL3STARSINSOUTH(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 931, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 931, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 931, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 931, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_68CDL3INSIDE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -12799,7 +13367,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_66CDL3STARSINSOUTH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_68CDL3INSIDE(CYTHON_UNUSED 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; @@ -12816,50 +13384,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_66CDL3STARSINSOUTH(CYTHON_UNUSED PyObj int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDL3STARSINSOUTH", 0); + __Pyx_RefNannySetupContext("CDL3INSIDE", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 945, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 948, __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(4, 946, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 949, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 947, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 950, __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(4, 948, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 951, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 949, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 952, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 950, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 953, __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_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(4, 953, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 956, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDL3INSIDE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3STARSINSOUTH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 955, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3INSIDE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -12872,7 +13440,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_66CDL3STARSINSOUTH(CYTHON_UNUSED PyObj /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDL3STARSINSOUTH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDL3INSIDE", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -12887,16 +13455,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_66CDL3STARSINSOUTH(CYTHON_UNUSED PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_69CDL3WHITESOLDIERS(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_71CDL3LINESTRIKE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_68CDL3WHITESOLDIERS, "CDL3WHITESOLDIERS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3WHITESOLDIERS(open, high, low, close)\n\nThree Advancing White Soldiers (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_69CDL3WHITESOLDIERS = {"CDL3WHITESOLDIERS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_69CDL3WHITESOLDIERS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_68CDL3WHITESOLDIERS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_69CDL3WHITESOLDIERS(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_70CDL3LINESTRIKE, "CDL3LINESTRIKE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3LINESTRIKE(open, high, low, close)\n\nThree-Line Strike (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_71CDL3LINESTRIKE = {"CDL3LINESTRIKE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_71CDL3LINESTRIKE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_70CDL3LINESTRIKE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_71CDL3LINESTRIKE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -12917,7 +13485,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDL3WHITESOLDIERS (wrapper)", 0); + __Pyx_RefNannySetupContext("CDL3LINESTRIKE (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -12929,44 +13497,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 958, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 961, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 958, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 961, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 958, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 961, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 958, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 961, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 958, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 961, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDL3WHITESOLDIERS", 0) < (0)) __PYX_ERR(4, 958, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDL3LINESTRIKE", 0) < (0)) __PYX_ERR(4, 961, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDL3WHITESOLDIERS", 1, 4, 4, i); __PYX_ERR(4, 958, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDL3LINESTRIKE", 1, 4, 4, i); __PYX_ERR(4, 961, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 958, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 961, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 958, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 961, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 958, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 961, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 958, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 961, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -12975,22 +13543,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDL3WHITESOLDIERS", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 958, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDL3LINESTRIKE", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 961, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDL3WHITESOLDIERS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDL3LINESTRIKE", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 960, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 960, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 960, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 960, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_68CDL3WHITESOLDIERS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 963, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 963, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 963, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 963, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_70CDL3LINESTRIKE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -13009,7 +13577,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_68CDL3WHITESOLDIERS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_70CDL3LINESTRIKE(CYTHON_UNUSED 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; @@ -13026,50 +13594,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_68CDL3WHITESOLDIERS(CYTHON_UNUSED PyOb int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDL3WHITESOLDIERS", 0); + __Pyx_RefNannySetupContext("CDL3LINESTRIKE", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 977, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 980, __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(4, 978, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 981, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 979, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 982, __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(4, 980, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 983, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 981, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 984, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 982, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 985, __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_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(4, 985, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 988, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDL3LINESTRIKE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3WHITESOLDIERS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 987, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3LINESTRIKE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 990, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -13082,7 +13650,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_68CDL3WHITESOLDIERS(CYTHON_UNUSED PyOb /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDL3WHITESOLDIERS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDL3LINESTRIKE", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -13097,16 +13665,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_68CDL3WHITESOLDIERS(CYTHON_UNUSED PyOb /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_71CDLABANDONEDBABY(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_73CDL3OUTSIDE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_70CDLABANDONEDBABY, "CDLABANDONEDBABY(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\n\nCDLABANDONEDBABY(open, high, low, close[, penetration=?])\n\nAbandoned Baby (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_71CDLABANDONEDBABY = {"CDLABANDONEDBABY", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_71CDLABANDONEDBABY, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_70CDLABANDONEDBABY}; -static PyObject *__pyx_pw_5talib_7_ta_lib_71CDLABANDONEDBABY(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_72CDL3OUTSIDE, "CDL3OUTSIDE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3OUTSIDE(open, high, low, close)\n\nThree Outside Up/Down (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_73CDL3OUTSIDE = {"CDL3OUTSIDE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_73CDL3OUTSIDE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_72CDL3OUTSIDE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_73CDL3OUTSIDE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -13117,18 +13685,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; - double __pyx_v_penetration; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLABANDONEDBABY (wrapper)", 0); + __Pyx_RefNannySetupContext("CDL3OUTSIDE (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -13138,86 +13705,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 990, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 993, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 990, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 990, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 993, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 990, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 993, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 990, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 993, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 990, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 993, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLABANDONEDBABY", 0) < (0)) __PYX_ERR(4, 990, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDL3OUTSIDE", 0) < (0)) __PYX_ERR(4, 993, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLABANDONEDBABY", 0, 4, 5, i); __PYX_ERR(4, 990, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDL3OUTSIDE", 1, 4, 4, i); __PYX_ERR(4, 993, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 990, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 990, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 990, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 990, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 990, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 993, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 993, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 993, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 993, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); __pyx_v_low = ((PyArrayObject *)values[2]); __pyx_v_close = ((PyArrayObject *)values[3]); - if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 992, __pyx_L3_error) - } else { - __pyx_v_penetration = ((double)((double)0.3)); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLABANDONEDBABY", 0, 4, 5, __pyx_nargs); __PYX_ERR(4, 990, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDL3OUTSIDE", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 993, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLABANDONEDBABY", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDL3OUTSIDE", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 992, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 992, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 992, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 992, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_70CDLABANDONEDBABY(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 995, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 995, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 995, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 995, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_72CDL3OUTSIDE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -13236,7 +13787,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_70CDLABANDONEDBABY(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { +static PyObject *__pyx_pf_5talib_7_ta_lib_72CDL3OUTSIDE(CYTHON_UNUSED 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; @@ -13253,50 +13804,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_70CDLABANDONEDBABY(CYTHON_UNUSED PyObj int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLABANDONEDBABY", 0); + __Pyx_RefNannySetupContext("CDL3OUTSIDE", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1011, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1012, __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(4, 1012, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1013, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1013, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1014, __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(4, 1014, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1015, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1015, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1016, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1016, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1017, __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_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(4, 1019, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1020, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDL3OUTSIDE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLABANDONEDBABY, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1021, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3OUTSIDE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1022, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -13309,7 +13860,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_70CDLABANDONEDBABY(CYTHON_UNUSED PyObj /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLABANDONEDBABY", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDL3OUTSIDE", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -13324,16 +13875,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_70CDLABANDONEDBABY(CYTHON_UNUSED PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_73CDLADVANCEBLOCK(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_75CDL3STARSINSOUTH(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_72CDLADVANCEBLOCK, "CDLADVANCEBLOCK(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLADVANCEBLOCK(open, high, low, close)\n\nAdvance Block (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_73CDLADVANCEBLOCK = {"CDLADVANCEBLOCK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_73CDLADVANCEBLOCK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_72CDLADVANCEBLOCK}; -static PyObject *__pyx_pw_5talib_7_ta_lib_73CDLADVANCEBLOCK(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_74CDL3STARSINSOUTH, "CDL3STARSINSOUTH(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3STARSINSOUTH(open, high, low, close)\n\nThree Stars In The South (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_75CDL3STARSINSOUTH = {"CDL3STARSINSOUTH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_75CDL3STARSINSOUTH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_74CDL3STARSINSOUTH}; +static PyObject *__pyx_pw_5talib_7_ta_lib_75CDL3STARSINSOUTH(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -13354,7 +13905,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLADVANCEBLOCK (wrapper)", 0); + __Pyx_RefNannySetupContext("CDL3STARSINSOUTH (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -13366,44 +13917,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1024, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1025, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1024, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1025, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1024, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1025, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1024, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1025, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1024, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1025, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLADVANCEBLOCK", 0) < (0)) __PYX_ERR(4, 1024, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDL3STARSINSOUTH", 0) < (0)) __PYX_ERR(4, 1025, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLADVANCEBLOCK", 1, 4, 4, i); __PYX_ERR(4, 1024, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDL3STARSINSOUTH", 1, 4, 4, i); __PYX_ERR(4, 1025, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1024, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1025, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1024, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1025, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1024, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1025, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1024, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1025, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -13412,22 +13963,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLADVANCEBLOCK", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1024, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDL3STARSINSOUTH", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1025, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLADVANCEBLOCK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDL3STARSINSOUTH", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1026, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1026, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1026, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1026, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_72CDLADVANCEBLOCK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1027, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1027, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1027, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1027, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_74CDL3STARSINSOUTH(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -13446,7 +13997,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_72CDLADVANCEBLOCK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_74CDL3STARSINSOUTH(CYTHON_UNUSED 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; @@ -13463,50 +14014,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_72CDLADVANCEBLOCK(CYTHON_UNUSED PyObje int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLADVANCEBLOCK", 0); + __Pyx_RefNannySetupContext("CDL3STARSINSOUTH", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1043, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1044, __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(4, 1044, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1045, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1045, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1046, __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(4, 1046, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1047, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1047, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1048, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1048, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1049, __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_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(4, 1051, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1052, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDL3STARSINSOUTH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLADVANCEBLOCK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1053, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3STARSINSOUTH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1054, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -13519,7 +14070,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_72CDLADVANCEBLOCK(CYTHON_UNUSED PyObje /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLADVANCEBLOCK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDL3STARSINSOUTH", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -13534,16 +14085,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_72CDLADVANCEBLOCK(CYTHON_UNUSED PyObje /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_75CDLBELTHOLD(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_77CDL3WHITESOLDIERS(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_74CDLBELTHOLD, "CDLBELTHOLD(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLBELTHOLD(open, high, low, close)\n\nBelt-hold (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_75CDLBELTHOLD = {"CDLBELTHOLD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_75CDLBELTHOLD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_74CDLBELTHOLD}; -static PyObject *__pyx_pw_5talib_7_ta_lib_75CDLBELTHOLD(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_76CDL3WHITESOLDIERS, "CDL3WHITESOLDIERS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3WHITESOLDIERS(open, high, low, close)\n\nThree Advancing White Soldiers (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_77CDL3WHITESOLDIERS = {"CDL3WHITESOLDIERS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_77CDL3WHITESOLDIERS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_76CDL3WHITESOLDIERS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_77CDL3WHITESOLDIERS(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -13564,7 +14115,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLBELTHOLD (wrapper)", 0); + __Pyx_RefNannySetupContext("CDL3WHITESOLDIERS (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -13576,44 +14127,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1056, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1057, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1056, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1057, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1056, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1057, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1056, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1057, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1056, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1057, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLBELTHOLD", 0) < (0)) __PYX_ERR(4, 1056, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDL3WHITESOLDIERS", 0) < (0)) __PYX_ERR(4, 1057, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLBELTHOLD", 1, 4, 4, i); __PYX_ERR(4, 1056, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDL3WHITESOLDIERS", 1, 4, 4, i); __PYX_ERR(4, 1057, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1056, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1057, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1056, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1057, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1056, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1057, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1056, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1057, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -13622,22 +14173,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLBELTHOLD", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1056, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDL3WHITESOLDIERS", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1057, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLBELTHOLD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDL3WHITESOLDIERS", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1058, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1058, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1058, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1058, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_74CDLBELTHOLD(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1059, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1059, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1059, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1059, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_76CDL3WHITESOLDIERS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -13656,7 +14207,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_74CDLBELTHOLD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_76CDL3WHITESOLDIERS(CYTHON_UNUSED 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; @@ -13673,50 +14224,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_74CDLBELTHOLD(CYTHON_UNUSED PyObject * int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLBELTHOLD", 0); + __Pyx_RefNannySetupContext("CDL3WHITESOLDIERS", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1075, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1076, __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(4, 1076, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1077, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1077, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1078, __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(4, 1078, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1079, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1079, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1080, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1080, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1081, __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_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(4, 1083, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1084, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDL3WHITESOLDIERS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBELTHOLD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1085, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3WHITESOLDIERS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1086, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -13729,7 +14280,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_74CDLBELTHOLD(CYTHON_UNUSED PyObject * /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLBELTHOLD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDL3WHITESOLDIERS", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -13744,16 +14295,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_74CDLBELTHOLD(CYTHON_UNUSED PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_77CDLBREAKAWAY(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_79CDLABANDONEDBABY(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_76CDLBREAKAWAY, "CDLBREAKAWAY(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLBREAKAWAY(open, high, low, close)\n\nBreakaway (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_77CDLBREAKAWAY = {"CDLBREAKAWAY", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_77CDLBREAKAWAY, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_76CDLBREAKAWAY}; -static PyObject *__pyx_pw_5talib_7_ta_lib_77CDLBREAKAWAY(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_78CDLABANDONEDBABY, "CDLABANDONEDBABY(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\n\nCDLABANDONEDBABY(open, high, low, close[, penetration=?])\n\nAbandoned Baby (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_79CDLABANDONEDBABY = {"CDLABANDONEDBABY", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_79CDLABANDONEDBABY, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_78CDLABANDONEDBABY}; +static PyObject *__pyx_pw_5talib_7_ta_lib_79CDLABANDONEDBABY(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -13764,17 +14315,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; + double __pyx_v_penetration; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLBREAKAWAY (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLABANDONEDBABY (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -13784,70 +14336,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1088, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1089, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 1089, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1088, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1089, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1088, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1089, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1088, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1089, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1088, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1089, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLBREAKAWAY", 0) < (0)) __PYX_ERR(4, 1088, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLABANDONEDBABY", 0) < (0)) __PYX_ERR(4, 1089, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLBREAKAWAY", 1, 4, 4, i); __PYX_ERR(4, 1088, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLABANDONEDBABY", 0, 4, 5, i); __PYX_ERR(4, 1089, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1088, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1088, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1088, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1088, __pyx_L3_error) + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 1089, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1089, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1089, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1089, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1089, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); __pyx_v_low = ((PyArrayObject *)values[2]); __pyx_v_close = ((PyArrayObject *)values[3]); + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 1091, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)((double)0.3)); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLBREAKAWAY", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1088, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLABANDONEDBABY", 0, 4, 5, __pyx_nargs); __PYX_ERR(4, 1089, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLBREAKAWAY", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLABANDONEDBABY", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1090, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1090, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1090, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1090, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_76CDLBREAKAWAY(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1091, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1091, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1091, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1091, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_78CDLABANDONEDBABY(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); /* function exit code */ goto __pyx_L0; @@ -13866,7 +14434,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_76CDLBREAKAWAY(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_78CDLABANDONEDBABY(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -13883,50 +14451,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_76CDLBREAKAWAY(CYTHON_UNUSED PyObject int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLBREAKAWAY", 0); + __Pyx_RefNannySetupContext("CDLABANDONEDBABY", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1107, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1110, __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(4, 1108, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1109, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1112, __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(4, 1110, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1113, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1111, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1114, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1112, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1115, __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_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(4, 1115, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1118, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLABANDONEDBABY(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBREAKAWAY, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1117, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLABANDONEDBABY, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -13939,7 +14507,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_76CDLBREAKAWAY(CYTHON_UNUSED PyObject /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLBREAKAWAY", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLABANDONEDBABY", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -13954,16 +14522,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_76CDLBREAKAWAY(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_79CDLCLOSINGMARUBOZU(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_81CDLADVANCEBLOCK(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_78CDLCLOSINGMARUBOZU, "CDLCLOSINGMARUBOZU(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLCLOSINGMARUBOZU(open, high, low, close)\n\nClosing Marubozu (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_79CDLCLOSINGMARUBOZU = {"CDLCLOSINGMARUBOZU", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_79CDLCLOSINGMARUBOZU, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_78CDLCLOSINGMARUBOZU}; -static PyObject *__pyx_pw_5talib_7_ta_lib_79CDLCLOSINGMARUBOZU(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_80CDLADVANCEBLOCK, "CDLADVANCEBLOCK(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLADVANCEBLOCK(open, high, low, close)\n\nAdvance Block (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_81CDLADVANCEBLOCK = {"CDLADVANCEBLOCK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_81CDLADVANCEBLOCK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_80CDLADVANCEBLOCK}; +static PyObject *__pyx_pw_5talib_7_ta_lib_81CDLADVANCEBLOCK(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -13984,7 +14552,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLCLOSINGMARUBOZU (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLADVANCEBLOCK (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -13996,44 +14564,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1120, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1123, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1120, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1123, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1120, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1123, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1120, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1123, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1120, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1123, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLCLOSINGMARUBOZU", 0) < (0)) __PYX_ERR(4, 1120, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLADVANCEBLOCK", 0) < (0)) __PYX_ERR(4, 1123, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLCLOSINGMARUBOZU", 1, 4, 4, i); __PYX_ERR(4, 1120, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLADVANCEBLOCK", 1, 4, 4, i); __PYX_ERR(4, 1123, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1120, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1123, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1120, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1123, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1120, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1123, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1120, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1123, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -14042,22 +14610,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLCLOSINGMARUBOZU", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1120, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLADVANCEBLOCK", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1123, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLCLOSINGMARUBOZU", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLADVANCEBLOCK", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1122, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1122, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1122, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1122, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_78CDLCLOSINGMARUBOZU(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1125, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1125, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1125, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1125, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_80CDLADVANCEBLOCK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -14076,7 +14644,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_78CDLCLOSINGMARUBOZU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_80CDLADVANCEBLOCK(CYTHON_UNUSED 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; @@ -14093,50 +14661,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_78CDLCLOSINGMARUBOZU(CYTHON_UNUSED PyO int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLCLOSINGMARUBOZU", 0); + __Pyx_RefNannySetupContext("CDLADVANCEBLOCK", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1139, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1142, __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(4, 1140, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1143, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1141, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1144, __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(4, 1142, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1145, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1143, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1146, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1144, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1147, __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_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(4, 1147, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1150, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLADVANCEBLOCK(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCLOSINGMARUBOZU, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1149, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLADVANCEBLOCK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1152, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -14149,7 +14717,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_78CDLCLOSINGMARUBOZU(CYTHON_UNUSED PyO /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLCLOSINGMARUBOZU", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLADVANCEBLOCK", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -14164,16 +14732,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_78CDLCLOSINGMARUBOZU(CYTHON_UNUSED PyO /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_81CDLCONCEALBABYSWALL(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_83CDLBELTHOLD(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_80CDLCONCEALBABYSWALL, "CDLCONCEALBABYSWALL(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLCONCEALBABYSWALL(open, high, low, close)\n\nConcealing Baby Swallow (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_81CDLCONCEALBABYSWALL = {"CDLCONCEALBABYSWALL", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_81CDLCONCEALBABYSWALL, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_80CDLCONCEALBABYSWALL}; -static PyObject *__pyx_pw_5talib_7_ta_lib_81CDLCONCEALBABYSWALL(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_82CDLBELTHOLD, "CDLBELTHOLD(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLBELTHOLD(open, high, low, close)\n\nBelt-hold (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_83CDLBELTHOLD = {"CDLBELTHOLD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_83CDLBELTHOLD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_82CDLBELTHOLD}; +static PyObject *__pyx_pw_5talib_7_ta_lib_83CDLBELTHOLD(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -14194,7 +14762,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLCONCEALBABYSWALL (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLBELTHOLD (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -14206,44 +14774,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1152, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1155, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1152, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1155, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1152, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1155, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1152, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1155, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1152, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1155, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLCONCEALBABYSWALL", 0) < (0)) __PYX_ERR(4, 1152, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLBELTHOLD", 0) < (0)) __PYX_ERR(4, 1155, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLCONCEALBABYSWALL", 1, 4, 4, i); __PYX_ERR(4, 1152, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLBELTHOLD", 1, 4, 4, i); __PYX_ERR(4, 1155, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1152, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1155, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1152, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1155, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1152, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1155, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1152, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1155, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -14252,22 +14820,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLCONCEALBABYSWALL", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1152, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLBELTHOLD", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1155, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLCONCEALBABYSWALL", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLBELTHOLD", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1154, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1154, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1154, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1154, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_80CDLCONCEALBABYSWALL(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1157, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1157, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1157, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1157, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_82CDLBELTHOLD(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -14286,7 +14854,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_80CDLCONCEALBABYSWALL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_82CDLBELTHOLD(CYTHON_UNUSED 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; @@ -14303,50 +14871,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_80CDLCONCEALBABYSWALL(CYTHON_UNUSED Py int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLCONCEALBABYSWALL", 0); + __Pyx_RefNannySetupContext("CDLBELTHOLD", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1171, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1174, __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(4, 1172, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1175, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1173, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1176, __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(4, 1174, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1177, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1175, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1178, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1176, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1179, __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_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(4, 1179, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1182, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLBELTHOLD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCONCEALBABYSWALL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1181, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBELTHOLD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -14359,7 +14927,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_80CDLCONCEALBABYSWALL(CYTHON_UNUSED Py /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLCONCEALBABYSWALL", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLBELTHOLD", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -14374,16 +14942,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_80CDLCONCEALBABYSWALL(CYTHON_UNUSED Py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_83CDLCOUNTERATTACK(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_85CDLBREAKAWAY(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_82CDLCOUNTERATTACK, "CDLCOUNTERATTACK(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLCOUNTERATTACK(open, high, low, close)\n\nCounterattack (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_83CDLCOUNTERATTACK = {"CDLCOUNTERATTACK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_83CDLCOUNTERATTACK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_82CDLCOUNTERATTACK}; -static PyObject *__pyx_pw_5talib_7_ta_lib_83CDLCOUNTERATTACK(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_84CDLBREAKAWAY, "CDLBREAKAWAY(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLBREAKAWAY(open, high, low, close)\n\nBreakaway (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_85CDLBREAKAWAY = {"CDLBREAKAWAY", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_85CDLBREAKAWAY, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_84CDLBREAKAWAY}; +static PyObject *__pyx_pw_5talib_7_ta_lib_85CDLBREAKAWAY(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -14404,7 +14972,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLCOUNTERATTACK (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLBREAKAWAY (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -14416,44 +14984,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1184, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1187, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1184, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1187, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1184, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1187, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1184, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1187, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1184, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1187, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLCOUNTERATTACK", 0) < (0)) __PYX_ERR(4, 1184, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLBREAKAWAY", 0) < (0)) __PYX_ERR(4, 1187, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLCOUNTERATTACK", 1, 4, 4, i); __PYX_ERR(4, 1184, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLBREAKAWAY", 1, 4, 4, i); __PYX_ERR(4, 1187, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1184, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1187, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1184, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1187, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1184, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1187, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1184, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1187, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -14462,22 +15030,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLCOUNTERATTACK", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1184, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLBREAKAWAY", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1187, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLCOUNTERATTACK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLBREAKAWAY", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1186, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1186, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1186, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1186, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_82CDLCOUNTERATTACK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1189, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1189, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1189, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1189, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_84CDLBREAKAWAY(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -14496,7 +15064,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_82CDLCOUNTERATTACK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_84CDLBREAKAWAY(CYTHON_UNUSED 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; @@ -14513,50 +15081,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_82CDLCOUNTERATTACK(CYTHON_UNUSED PyObj int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLCOUNTERATTACK", 0); + __Pyx_RefNannySetupContext("CDLBREAKAWAY", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1203, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1206, __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(4, 1204, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1207, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1205, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1208, __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(4, 1206, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1209, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1207, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1210, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1208, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1211, __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_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(4, 1211, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1214, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLBREAKAWAY(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCOUNTERATTACK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1213, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBREAKAWAY, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1216, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -14569,7 +15137,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_82CDLCOUNTERATTACK(CYTHON_UNUSED PyObj /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLCOUNTERATTACK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLBREAKAWAY", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -14584,16 +15152,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_82CDLCOUNTERATTACK(CYTHON_UNUSED PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_85CDLDARKCLOUDCOVER(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_87CDLCLOSINGMARUBOZU(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_84CDLDARKCLOUDCOVER, "CDLDARKCLOUDCOVER(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.5)\n\nCDLDARKCLOUDCOVER(open, high, low, close[, penetration=?])\n\nDark Cloud Cover (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nParameters:\n penetration: 0.5\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_85CDLDARKCLOUDCOVER = {"CDLDARKCLOUDCOVER", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_85CDLDARKCLOUDCOVER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_84CDLDARKCLOUDCOVER}; -static PyObject *__pyx_pw_5talib_7_ta_lib_85CDLDARKCLOUDCOVER(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_86CDLCLOSINGMARUBOZU, "CDLCLOSINGMARUBOZU(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLCLOSINGMARUBOZU(open, high, low, close)\n\nClosing Marubozu (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_87CDLCLOSINGMARUBOZU = {"CDLCLOSINGMARUBOZU", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_87CDLCLOSINGMARUBOZU, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_86CDLCLOSINGMARUBOZU}; +static PyObject *__pyx_pw_5talib_7_ta_lib_87CDLCLOSINGMARUBOZU(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -14604,18 +15172,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; - double __pyx_v_penetration; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLDARKCLOUDCOVER (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLCLOSINGMARUBOZU (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -14625,86 +15192,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1216, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1219, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 1216, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1216, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1219, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1216, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1219, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1216, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1219, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1216, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1219, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLDARKCLOUDCOVER", 0) < (0)) __PYX_ERR(4, 1216, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLCLOSINGMARUBOZU", 0) < (0)) __PYX_ERR(4, 1219, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLDARKCLOUDCOVER", 0, 4, 5, i); __PYX_ERR(4, 1216, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLCLOSINGMARUBOZU", 1, 4, 4, i); __PYX_ERR(4, 1219, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 1216, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1216, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1216, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1216, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1216, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1219, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1219, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1219, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1219, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); __pyx_v_low = ((PyArrayObject *)values[2]); __pyx_v_close = ((PyArrayObject *)values[3]); - if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 1218, __pyx_L3_error) - } else { - __pyx_v_penetration = ((double)((double)0.5)); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLDARKCLOUDCOVER", 0, 4, 5, __pyx_nargs); __PYX_ERR(4, 1216, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLCLOSINGMARUBOZU", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1219, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLDARKCLOUDCOVER", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLCLOSINGMARUBOZU", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1218, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1218, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1218, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1218, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_84CDLDARKCLOUDCOVER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1221, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1221, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1221, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1221, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_86CDLCLOSINGMARUBOZU(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -14723,7 +15274,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_84CDLDARKCLOUDCOVER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { +static PyObject *__pyx_pf_5talib_7_ta_lib_86CDLCLOSINGMARUBOZU(CYTHON_UNUSED 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; @@ -14740,50 +15291,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_84CDLDARKCLOUDCOVER(CYTHON_UNUSED PyOb int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLDARKCLOUDCOVER", 0); + __Pyx_RefNannySetupContext("CDLCLOSINGMARUBOZU", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1237, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1238, __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(4, 1238, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1239, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1239, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1240, __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(4, 1240, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1241, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1241, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1242, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1242, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1243, __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_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(4, 1245, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1246, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLCLOSINGMARUBOZU(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDARKCLOUDCOVER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1247, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCLOSINGMARUBOZU, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1248, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -14796,7 +15347,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_84CDLDARKCLOUDCOVER(CYTHON_UNUSED PyOb /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLDARKCLOUDCOVER", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLCLOSINGMARUBOZU", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -14811,16 +15362,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_84CDLDARKCLOUDCOVER(CYTHON_UNUSED PyOb /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_87CDLDOJI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_89CDLCONCEALBABYSWALL(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_86CDLDOJI, "CDLDOJI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLDOJI(open, high, low, close)\n\nDoji (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_87CDLDOJI = {"CDLDOJI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_87CDLDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_86CDLDOJI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_87CDLDOJI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_88CDLCONCEALBABYSWALL, "CDLCONCEALBABYSWALL(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLCONCEALBABYSWALL(open, high, low, close)\n\nConcealing Baby Swallow (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_89CDLCONCEALBABYSWALL = {"CDLCONCEALBABYSWALL", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_89CDLCONCEALBABYSWALL, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_88CDLCONCEALBABYSWALL}; +static PyObject *__pyx_pw_5talib_7_ta_lib_89CDLCONCEALBABYSWALL(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -14841,7 +15392,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLDOJI (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLCONCEALBABYSWALL (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -14853,44 +15404,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1250, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1251, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1250, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1251, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1250, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1251, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1250, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1251, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1250, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1251, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLDOJI", 0) < (0)) __PYX_ERR(4, 1250, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLCONCEALBABYSWALL", 0) < (0)) __PYX_ERR(4, 1251, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLDOJI", 1, 4, 4, i); __PYX_ERR(4, 1250, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLCONCEALBABYSWALL", 1, 4, 4, i); __PYX_ERR(4, 1251, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1250, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1251, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1250, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1251, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1250, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1251, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1250, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1251, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -14899,22 +15450,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLDOJI", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1250, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLCONCEALBABYSWALL", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1251, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLCONCEALBABYSWALL", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1252, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1252, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1252, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1252, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_86CDLDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1253, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1253, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1253, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1253, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_88CDLCONCEALBABYSWALL(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -14933,7 +15484,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_86CDLDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_88CDLCONCEALBABYSWALL(CYTHON_UNUSED 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; @@ -14950,50 +15501,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_86CDLDOJI(CYTHON_UNUSED PyObject *__py int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLDOJI", 0); + __Pyx_RefNannySetupContext("CDLCONCEALBABYSWALL", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1269, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1270, __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(4, 1270, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1271, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1272, __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(4, 1272, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1273, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1274, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1274, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1275, __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_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(4, 1277, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1278, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLCONCEALBABYSWALL(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1279, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCONCEALBABYSWALL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1280, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -15006,7 +15557,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_86CDLDOJI(CYTHON_UNUSED PyObject *__py /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLCONCEALBABYSWALL", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -15021,16 +15572,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_86CDLDOJI(CYTHON_UNUSED PyObject *__py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_89CDLDOJISTAR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_91CDLCOUNTERATTACK(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_88CDLDOJISTAR, "CDLDOJISTAR(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLDOJISTAR(open, high, low, close)\n\nDoji Star (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_89CDLDOJISTAR = {"CDLDOJISTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_89CDLDOJISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_88CDLDOJISTAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_89CDLDOJISTAR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_90CDLCOUNTERATTACK, "CDLCOUNTERATTACK(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLCOUNTERATTACK(open, high, low, close)\n\nCounterattack (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_91CDLCOUNTERATTACK = {"CDLCOUNTERATTACK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_91CDLCOUNTERATTACK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_90CDLCOUNTERATTACK}; +static PyObject *__pyx_pw_5talib_7_ta_lib_91CDLCOUNTERATTACK(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -15051,7 +15602,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLDOJISTAR (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLCOUNTERATTACK (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -15063,44 +15614,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1282, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1283, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1282, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1283, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1282, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1283, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1282, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1283, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1282, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1283, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLDOJISTAR", 0) < (0)) __PYX_ERR(4, 1282, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLCOUNTERATTACK", 0) < (0)) __PYX_ERR(4, 1283, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLDOJISTAR", 1, 4, 4, i); __PYX_ERR(4, 1282, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLCOUNTERATTACK", 1, 4, 4, i); __PYX_ERR(4, 1283, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1282, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1283, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1282, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1283, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1282, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1283, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1282, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1283, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -15109,22 +15660,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLDOJISTAR", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1282, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLCOUNTERATTACK", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1283, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLCOUNTERATTACK", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1284, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1284, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1284, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1284, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_88CDLDOJISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1285, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1285, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1285, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1285, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_90CDLCOUNTERATTACK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -15143,7 +15694,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_88CDLDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_90CDLCOUNTERATTACK(CYTHON_UNUSED 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; @@ -15160,50 +15711,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_88CDLDOJISTAR(CYTHON_UNUSED PyObject * int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLDOJISTAR", 0); + __Pyx_RefNannySetupContext("CDLCOUNTERATTACK", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1301, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1302, __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(4, 1302, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1303, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1303, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1304, __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(4, 1304, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1305, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1305, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1306, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1306, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1307, __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_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(4, 1309, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1310, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLCOUNTERATTACK(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1311, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCOUNTERATTACK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1312, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -15216,7 +15767,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_88CDLDOJISTAR(CYTHON_UNUSED PyObject * /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLCOUNTERATTACK", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -15231,16 +15782,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_88CDLDOJISTAR(CYTHON_UNUSED PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_91CDLDRAGONFLYDOJI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_93CDLDARKCLOUDCOVER(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_90CDLDRAGONFLYDOJI, "CDLDRAGONFLYDOJI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLDRAGONFLYDOJI(open, high, low, close)\n\nDragonfly Doji (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_91CDLDRAGONFLYDOJI = {"CDLDRAGONFLYDOJI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_91CDLDRAGONFLYDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_90CDLDRAGONFLYDOJI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_91CDLDRAGONFLYDOJI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_92CDLDARKCLOUDCOVER, "CDLDARKCLOUDCOVER(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.5)\n\nCDLDARKCLOUDCOVER(open, high, low, close[, penetration=?])\n\nDark Cloud Cover (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nParameters:\n penetration: 0.5\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_93CDLDARKCLOUDCOVER = {"CDLDARKCLOUDCOVER", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_93CDLDARKCLOUDCOVER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_92CDLDARKCLOUDCOVER}; +static PyObject *__pyx_pw_5talib_7_ta_lib_93CDLDARKCLOUDCOVER(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -15251,17 +15802,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; + double __pyx_v_penetration; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLDRAGONFLYDOJI (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLDARKCLOUDCOVER (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -15271,70 +15823,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1314, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1315, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 1315, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1314, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1315, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1314, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1315, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1314, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1315, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1314, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1315, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLDRAGONFLYDOJI", 0) < (0)) __PYX_ERR(4, 1314, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLDARKCLOUDCOVER", 0) < (0)) __PYX_ERR(4, 1315, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLDRAGONFLYDOJI", 1, 4, 4, i); __PYX_ERR(4, 1314, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLDARKCLOUDCOVER", 0, 4, 5, i); __PYX_ERR(4, 1315, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1314, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1314, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1314, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1314, __pyx_L3_error) + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 1315, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1315, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1315, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1315, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1315, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); __pyx_v_low = ((PyArrayObject *)values[2]); __pyx_v_close = ((PyArrayObject *)values[3]); + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 1317, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)((double)0.5)); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLDRAGONFLYDOJI", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1314, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLDARKCLOUDCOVER", 0, 4, 5, __pyx_nargs); __PYX_ERR(4, 1315, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLDRAGONFLYDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDARKCLOUDCOVER", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1316, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1316, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1316, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1316, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_90CDLDRAGONFLYDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1317, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1317, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1317, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1317, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_92CDLDARKCLOUDCOVER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); /* function exit code */ goto __pyx_L0; @@ -15353,7 +15921,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_90CDLDRAGONFLYDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_92CDLDARKCLOUDCOVER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -15370,50 +15938,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_90CDLDRAGONFLYDOJI(CYTHON_UNUSED PyObj int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLDRAGONFLYDOJI", 0); + __Pyx_RefNannySetupContext("CDLDARKCLOUDCOVER", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1333, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1336, __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(4, 1334, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1337, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1335, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1338, __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(4, 1336, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1339, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1337, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1340, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1338, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1341, __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_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(4, 1341, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1344, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLDARKCLOUDCOVER(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDRAGONFLYDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1343, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDARKCLOUDCOVER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1346, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -15426,7 +15994,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_90CDLDRAGONFLYDOJI(CYTHON_UNUSED PyObj /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLDRAGONFLYDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDARKCLOUDCOVER", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -15441,16 +16009,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_90CDLDRAGONFLYDOJI(CYTHON_UNUSED PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_93CDLENGULFING(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_95CDLDOJI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_92CDLENGULFING, "CDLENGULFING(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLENGULFING(open, high, low, close)\n\nEngulfing Pattern (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_93CDLENGULFING = {"CDLENGULFING", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_93CDLENGULFING, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_92CDLENGULFING}; -static PyObject *__pyx_pw_5talib_7_ta_lib_93CDLENGULFING(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_94CDLDOJI, "CDLDOJI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLDOJI(open, high, low, close)\n\nDoji (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_95CDLDOJI = {"CDLDOJI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_95CDLDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_94CDLDOJI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_95CDLDOJI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -15471,7 +16039,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLENGULFING (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLDOJI (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -15483,44 +16051,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1346, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1349, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1346, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1349, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1346, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1349, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1346, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1349, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1346, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1349, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLENGULFING", 0) < (0)) __PYX_ERR(4, 1346, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLDOJI", 0) < (0)) __PYX_ERR(4, 1349, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLENGULFING", 1, 4, 4, i); __PYX_ERR(4, 1346, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLDOJI", 1, 4, 4, i); __PYX_ERR(4, 1349, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1346, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1349, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1346, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1349, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1346, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1349, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1346, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1349, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -15529,22 +16097,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLENGULFING", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1346, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLDOJI", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1349, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLENGULFING", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1348, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1348, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1348, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1348, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_92CDLENGULFING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1351, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1351, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1351, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1351, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_94CDLDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -15563,7 +16131,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_92CDLENGULFING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_94CDLDOJI(CYTHON_UNUSED 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; @@ -15580,50 +16148,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_92CDLENGULFING(CYTHON_UNUSED PyObject int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLENGULFING", 0); + __Pyx_RefNannySetupContext("CDLDOJI", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1365, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1368, __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(4, 1366, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1369, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1367, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1370, __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(4, 1368, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1371, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1369, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1372, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1370, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1373, __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_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(4, 1373, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1376, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLDOJI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLENGULFING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1375, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1378, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -15636,7 +16204,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_92CDLENGULFING(CYTHON_UNUSED PyObject /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLENGULFING", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -15651,16 +16219,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_92CDLENGULFING(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_95CDLEVENINGDOJISTAR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_97CDLDOJISTAR(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_94CDLEVENINGDOJISTAR, "CDLEVENINGDOJISTAR(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\n\nCDLEVENINGDOJISTAR(open, high, low, close[, penetration=?])\n\nEvening Doji Star (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_95CDLEVENINGDOJISTAR = {"CDLEVENINGDOJISTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_95CDLEVENINGDOJISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_94CDLEVENINGDOJISTAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_95CDLEVENINGDOJISTAR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_96CDLDOJISTAR, "CDLDOJISTAR(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLDOJISTAR(open, high, low, close)\n\nDoji Star (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_97CDLDOJISTAR = {"CDLDOJISTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_97CDLDOJISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_96CDLDOJISTAR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_97CDLDOJISTAR(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -15671,18 +16239,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; - double __pyx_v_penetration; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLEVENINGDOJISTAR (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLDOJISTAR (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -15692,86 +16259,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1378, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1381, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 1378, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1378, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1381, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1378, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1381, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1378, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1381, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1378, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1381, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLEVENINGDOJISTAR", 0) < (0)) __PYX_ERR(4, 1378, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLDOJISTAR", 0) < (0)) __PYX_ERR(4, 1381, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLEVENINGDOJISTAR", 0, 4, 5, i); __PYX_ERR(4, 1378, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLDOJISTAR", 1, 4, 4, i); __PYX_ERR(4, 1381, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 1378, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1378, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1378, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1378, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1378, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1381, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1381, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1381, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1381, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); __pyx_v_low = ((PyArrayObject *)values[2]); __pyx_v_close = ((PyArrayObject *)values[3]); - if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 1380, __pyx_L3_error) - } else { - __pyx_v_penetration = ((double)((double)0.3)); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLEVENINGDOJISTAR", 0, 4, 5, __pyx_nargs); __PYX_ERR(4, 1378, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLDOJISTAR", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1381, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1380, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1380, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1380, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1380, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_94CDLEVENINGDOJISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1383, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1383, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1383, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1383, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_96CDLDOJISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -15790,7 +16341,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_94CDLEVENINGDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { +static PyObject *__pyx_pf_5talib_7_ta_lib_96CDLDOJISTAR(CYTHON_UNUSED 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; @@ -15807,50 +16358,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_94CDLEVENINGDOJISTAR(CYTHON_UNUSED PyO int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLEVENINGDOJISTAR", 0); + __Pyx_RefNannySetupContext("CDLDOJISTAR", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1399, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1400, __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(4, 1400, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1401, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1402, __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(4, 1402, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1403, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1403, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1404, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1404, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1405, __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_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(4, 1407, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1408, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLDOJISTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGDOJISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1409, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1410, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -15863,7 +16414,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_94CDLEVENINGDOJISTAR(CYTHON_UNUSED PyO /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -15878,16 +16429,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_94CDLEVENINGDOJISTAR(CYTHON_UNUSED PyO /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_97CDLEVENINGSTAR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_99CDLDRAGONFLYDOJI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_96CDLEVENINGSTAR, "CDLEVENINGSTAR(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\n\nCDLEVENINGSTAR(open, high, low, close[, penetration=?])\n\nEvening Star (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_97CDLEVENINGSTAR = {"CDLEVENINGSTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_97CDLEVENINGSTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_96CDLEVENINGSTAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_97CDLEVENINGSTAR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_98CDLDRAGONFLYDOJI, "CDLDRAGONFLYDOJI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLDRAGONFLYDOJI(open, high, low, close)\n\nDragonfly Doji (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_99CDLDRAGONFLYDOJI = {"CDLDRAGONFLYDOJI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_99CDLDRAGONFLYDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_98CDLDRAGONFLYDOJI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_99CDLDRAGONFLYDOJI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -15898,18 +16449,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; - double __pyx_v_penetration; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLEVENINGSTAR (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLDRAGONFLYDOJI (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -15919,86 +16469,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1412, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1413, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 1412, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1412, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1413, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1412, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1413, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1412, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1413, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1412, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1413, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLEVENINGSTAR", 0) < (0)) __PYX_ERR(4, 1412, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLDRAGONFLYDOJI", 0) < (0)) __PYX_ERR(4, 1413, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLEVENINGSTAR", 0, 4, 5, i); __PYX_ERR(4, 1412, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLDRAGONFLYDOJI", 1, 4, 4, i); __PYX_ERR(4, 1413, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 1412, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1412, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1412, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1412, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1412, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1413, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1413, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1413, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1413, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); __pyx_v_low = ((PyArrayObject *)values[2]); __pyx_v_close = ((PyArrayObject *)values[3]); - if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 1414, __pyx_L3_error) - } else { - __pyx_v_penetration = ((double)((double)0.3)); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLEVENINGSTAR", 0, 4, 5, __pyx_nargs); __PYX_ERR(4, 1412, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLDRAGONFLYDOJI", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1413, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDRAGONFLYDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1414, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1414, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1414, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1414, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_96CDLEVENINGSTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1415, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1415, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1415, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1415, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_98CDLDRAGONFLYDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -16017,7 +16551,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_96CDLEVENINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { +static PyObject *__pyx_pf_5talib_7_ta_lib_98CDLDRAGONFLYDOJI(CYTHON_UNUSED 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; @@ -16034,50 +16568,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_96CDLEVENINGSTAR(CYTHON_UNUSED PyObjec int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLEVENINGSTAR", 0); + __Pyx_RefNannySetupContext("CDLDRAGONFLYDOJI", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1433, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1432, __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(4, 1434, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1433, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1435, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1434, __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(4, 1436, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1437, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1436, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1438, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1437, __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_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(4, 1441, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1440, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLDRAGONFLYDOJI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGSTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1443, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDRAGONFLYDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -16090,7 +16624,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_96CDLEVENINGSTAR(CYTHON_UNUSED PyObjec /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDRAGONFLYDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -16105,16 +16639,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_96CDLEVENINGSTAR(CYTHON_UNUSED PyObjec /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_99CDLGAPSIDESIDEWHITE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_101CDLENGULFING(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_98CDLGAPSIDESIDEWHITE, "CDLGAPSIDESIDEWHITE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLGAPSIDESIDEWHITE(open, high, low, close)\n\nUp/Down-gap side-by-side white lines (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_99CDLGAPSIDESIDEWHITE = {"CDLGAPSIDESIDEWHITE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_99CDLGAPSIDESIDEWHITE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_98CDLGAPSIDESIDEWHITE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_99CDLGAPSIDESIDEWHITE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_100CDLENGULFING, "CDLENGULFING(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLENGULFING(open, high, low, close)\n\nEngulfing Pattern (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_101CDLENGULFING = {"CDLENGULFING", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_101CDLENGULFING, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_100CDLENGULFING}; +static PyObject *__pyx_pw_5talib_7_ta_lib_101CDLENGULFING(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -16135,7 +16669,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLGAPSIDESIDEWHITE (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLENGULFING (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -16147,44 +16681,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1446, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1445, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1446, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1445, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1446, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1445, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1446, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1445, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1446, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1445, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLGAPSIDESIDEWHITE", 0) < (0)) __PYX_ERR(4, 1446, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLENGULFING", 0) < (0)) __PYX_ERR(4, 1445, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLGAPSIDESIDEWHITE", 1, 4, 4, i); __PYX_ERR(4, 1446, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLENGULFING", 1, 4, 4, i); __PYX_ERR(4, 1445, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1446, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1445, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1446, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1445, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1446, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1445, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1446, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1445, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -16193,22 +16727,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLGAPSIDESIDEWHITE", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1446, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLENGULFING", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1445, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLGAPSIDESIDEWHITE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLENGULFING", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1448, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1448, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1448, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1448, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_98CDLGAPSIDESIDEWHITE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1447, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1447, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1447, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1447, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_100CDLENGULFING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -16227,7 +16761,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_98CDLGAPSIDESIDEWHITE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_100CDLENGULFING(CYTHON_UNUSED 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; @@ -16244,50 +16778,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_98CDLGAPSIDESIDEWHITE(CYTHON_UNUSED Py int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLGAPSIDESIDEWHITE", 0); + __Pyx_RefNannySetupContext("CDLENGULFING", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1465, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1464, __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(4, 1466, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1465, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1467, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1466, __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(4, 1468, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1467, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1469, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1468, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1470, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1469, __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_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(4, 1473, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1472, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLENGULFING(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGAPSIDESIDEWHITE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1475, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLENGULFING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -16300,7 +16834,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_98CDLGAPSIDESIDEWHITE(CYTHON_UNUSED Py /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLGAPSIDESIDEWHITE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLENGULFING", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -16315,16 +16849,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_98CDLGAPSIDESIDEWHITE(CYTHON_UNUSED Py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_101CDLGRAVESTONEDOJI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_103CDLEVENINGDOJISTAR(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_100CDLGRAVESTONEDOJI, "CDLGRAVESTONEDOJI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLGRAVESTONEDOJI(open, high, low, close)\n\nGravestone Doji (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_101CDLGRAVESTONEDOJI = {"CDLGRAVESTONEDOJI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_101CDLGRAVESTONEDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_100CDLGRAVESTONEDOJI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_101CDLGRAVESTONEDOJI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_102CDLEVENINGDOJISTAR, "CDLEVENINGDOJISTAR(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\n\nCDLEVENINGDOJISTAR(open, high, low, close[, penetration=?])\n\nEvening Doji Star (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_103CDLEVENINGDOJISTAR = {"CDLEVENINGDOJISTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_103CDLEVENINGDOJISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_102CDLEVENINGDOJISTAR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_103CDLEVENINGDOJISTAR(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -16335,17 +16869,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; + double __pyx_v_penetration; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLGRAVESTONEDOJI (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLEVENINGDOJISTAR (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -16355,70 +16890,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1478, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1477, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 1477, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1478, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1477, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1478, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1477, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1478, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1477, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1478, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1477, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLGRAVESTONEDOJI", 0) < (0)) __PYX_ERR(4, 1478, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLEVENINGDOJISTAR", 0) < (0)) __PYX_ERR(4, 1477, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLGRAVESTONEDOJI", 1, 4, 4, i); __PYX_ERR(4, 1478, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLEVENINGDOJISTAR", 0, 4, 5, i); __PYX_ERR(4, 1477, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1478, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1478, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1478, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1478, __pyx_L3_error) + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 1477, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1477, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1477, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1477, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1477, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); __pyx_v_low = ((PyArrayObject *)values[2]); __pyx_v_close = ((PyArrayObject *)values[3]); + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 1479, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)((double)0.3)); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLGRAVESTONEDOJI", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1478, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLEVENINGDOJISTAR", 0, 4, 5, __pyx_nargs); __PYX_ERR(4, 1477, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLGRAVESTONEDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1480, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1480, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1480, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1480, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_100CDLGRAVESTONEDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1479, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1479, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1479, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1479, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_102CDLEVENINGDOJISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); /* function exit code */ goto __pyx_L0; @@ -16437,7 +16988,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_100CDLGRAVESTONEDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_102CDLEVENINGDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -16454,50 +17005,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_100CDLGRAVESTONEDOJI(CYTHON_UNUSED PyO int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLGRAVESTONEDOJI", 0); + __Pyx_RefNannySetupContext("CDLEVENINGDOJISTAR", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1497, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1498, __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(4, 1498, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1499, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1499, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1500, __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(4, 1500, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1501, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1501, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1502, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1502, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1503, __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_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(4, 1505, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1506, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLEVENINGDOJISTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGRAVESTONEDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1507, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGDOJISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1508, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -16510,7 +17061,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_100CDLGRAVESTONEDOJI(CYTHON_UNUSED PyO /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLGRAVESTONEDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -16525,16 +17076,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_100CDLGRAVESTONEDOJI(CYTHON_UNUSED PyO /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_103CDLHAMMER(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_105CDLEVENINGSTAR(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_102CDLHAMMER, "CDLHAMMER(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHAMMER(open, high, low, close)\n\nHammer (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_103CDLHAMMER = {"CDLHAMMER", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_103CDLHAMMER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_102CDLHAMMER}; -static PyObject *__pyx_pw_5talib_7_ta_lib_103CDLHAMMER(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_104CDLEVENINGSTAR, "CDLEVENINGSTAR(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\n\nCDLEVENINGSTAR(open, high, low, close[, penetration=?])\n\nEvening Star (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_105CDLEVENINGSTAR = {"CDLEVENINGSTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_105CDLEVENINGSTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_104CDLEVENINGSTAR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_105CDLEVENINGSTAR(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -16545,17 +17096,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; + double __pyx_v_penetration; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLHAMMER (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLEVENINGSTAR (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -16565,70 +17117,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1510, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1511, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 1511, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1510, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1511, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1510, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1511, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1510, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1511, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1510, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1511, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHAMMER", 0) < (0)) __PYX_ERR(4, 1510, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLEVENINGSTAR", 0) < (0)) __PYX_ERR(4, 1511, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHAMMER", 1, 4, 4, i); __PYX_ERR(4, 1510, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLEVENINGSTAR", 0, 4, 5, i); __PYX_ERR(4, 1511, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1510, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1510, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1510, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1510, __pyx_L3_error) + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 1511, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1511, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1511, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1511, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1511, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); __pyx_v_low = ((PyArrayObject *)values[2]); __pyx_v_close = ((PyArrayObject *)values[3]); + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 1513, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)((double)0.3)); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLHAMMER", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1510, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLEVENINGSTAR", 0, 4, 5, __pyx_nargs); __PYX_ERR(4, 1511, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHAMMER", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1512, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1512, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1512, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1512, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_102CDLHAMMER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1513, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1513, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1513, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1513, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_104CDLEVENINGSTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); /* function exit code */ goto __pyx_L0; @@ -16647,7 +17215,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_102CDLHAMMER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_104CDLEVENINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -16664,50 +17232,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_102CDLHAMMER(CYTHON_UNUSED PyObject *_ int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLHAMMER", 0); + __Pyx_RefNannySetupContext("CDLEVENINGSTAR", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1529, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1532, __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(4, 1530, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1533, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1531, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1534, __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(4, 1532, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1535, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1533, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1536, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1534, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1537, __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_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(4, 1537, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1540, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLEVENINGSTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHAMMER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1539, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGSTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1542, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -16720,7 +17288,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_102CDLHAMMER(CYTHON_UNUSED PyObject *_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLHAMMER", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -16735,16 +17303,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_102CDLHAMMER(CYTHON_UNUSED PyObject *_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_105CDLHANGINGMAN(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_107CDLGAPSIDESIDEWHITE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_104CDLHANGINGMAN, "CDLHANGINGMAN(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHANGINGMAN(open, high, low, close)\n\nHanging Man (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_105CDLHANGINGMAN = {"CDLHANGINGMAN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_105CDLHANGINGMAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_104CDLHANGINGMAN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_105CDLHANGINGMAN(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_106CDLGAPSIDESIDEWHITE, "CDLGAPSIDESIDEWHITE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLGAPSIDESIDEWHITE(open, high, low, close)\n\nUp/Down-gap side-by-side white lines (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_107CDLGAPSIDESIDEWHITE = {"CDLGAPSIDESIDEWHITE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_107CDLGAPSIDESIDEWHITE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_106CDLGAPSIDESIDEWHITE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_107CDLGAPSIDESIDEWHITE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -16765,7 +17333,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLHANGINGMAN (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLGAPSIDESIDEWHITE (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -16777,44 +17345,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1542, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1545, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1542, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1545, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1542, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1545, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1542, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1545, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1542, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1545, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHANGINGMAN", 0) < (0)) __PYX_ERR(4, 1542, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLGAPSIDESIDEWHITE", 0) < (0)) __PYX_ERR(4, 1545, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHANGINGMAN", 1, 4, 4, i); __PYX_ERR(4, 1542, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLGAPSIDESIDEWHITE", 1, 4, 4, i); __PYX_ERR(4, 1545, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1542, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1545, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1542, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1545, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1542, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1545, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1542, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1545, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -16823,22 +17391,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLHANGINGMAN", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1542, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLGAPSIDESIDEWHITE", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1545, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHANGINGMAN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLGAPSIDESIDEWHITE", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1544, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1544, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1544, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1544, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_104CDLHANGINGMAN(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1547, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1547, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1547, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1547, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_106CDLGAPSIDESIDEWHITE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -16857,7 +17425,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_104CDLHANGINGMAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_106CDLGAPSIDESIDEWHITE(CYTHON_UNUSED 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; @@ -16874,50 +17442,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_104CDLHANGINGMAN(CYTHON_UNUSED PyObjec int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLHANGINGMAN", 0); + __Pyx_RefNannySetupContext("CDLGAPSIDESIDEWHITE", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1561, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1564, __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(4, 1562, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1565, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1563, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1566, __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(4, 1564, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1567, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1565, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1568, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1566, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1569, __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_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(4, 1569, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1572, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLGAPSIDESIDEWHITE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHANGINGMAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1571, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGAPSIDESIDEWHITE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1574, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -16930,7 +17498,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_104CDLHANGINGMAN(CYTHON_UNUSED PyObjec /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLHANGINGMAN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLGAPSIDESIDEWHITE", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -16945,16 +17513,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_104CDLHANGINGMAN(CYTHON_UNUSED PyObjec /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_107CDLHARAMI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_109CDLGRAVESTONEDOJI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_106CDLHARAMI, "CDLHARAMI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHARAMI(open, high, low, close)\n\nHarami Pattern (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_107CDLHARAMI = {"CDLHARAMI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_107CDLHARAMI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_106CDLHARAMI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_107CDLHARAMI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_108CDLGRAVESTONEDOJI, "CDLGRAVESTONEDOJI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLGRAVESTONEDOJI(open, high, low, close)\n\nGravestone Doji (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_109CDLGRAVESTONEDOJI = {"CDLGRAVESTONEDOJI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_109CDLGRAVESTONEDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_108CDLGRAVESTONEDOJI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_109CDLGRAVESTONEDOJI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -16975,7 +17543,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLHARAMI (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLGRAVESTONEDOJI (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -16987,44 +17555,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1574, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1577, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1574, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1577, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1574, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1577, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1574, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1577, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1574, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1577, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHARAMI", 0) < (0)) __PYX_ERR(4, 1574, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLGRAVESTONEDOJI", 0) < (0)) __PYX_ERR(4, 1577, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHARAMI", 1, 4, 4, i); __PYX_ERR(4, 1574, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLGRAVESTONEDOJI", 1, 4, 4, i); __PYX_ERR(4, 1577, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1574, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1577, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1574, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1577, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1574, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1577, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1574, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1577, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -17033,22 +17601,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLHARAMI", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1574, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLGRAVESTONEDOJI", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1577, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHARAMI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLGRAVESTONEDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1576, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1576, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1576, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1576, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_106CDLHARAMI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1579, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1579, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1579, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1579, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_108CDLGRAVESTONEDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -17067,7 +17635,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_106CDLHARAMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_108CDLGRAVESTONEDOJI(CYTHON_UNUSED 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; @@ -17084,50 +17652,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_106CDLHARAMI(CYTHON_UNUSED PyObject *_ int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLHARAMI", 0); + __Pyx_RefNannySetupContext("CDLGRAVESTONEDOJI", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1593, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1596, __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(4, 1594, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1597, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1595, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1598, __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(4, 1596, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1599, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1597, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1600, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1598, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1601, __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_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(4, 1601, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1604, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLGRAVESTONEDOJI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1603, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGRAVESTONEDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1606, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -17140,7 +17708,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_106CDLHARAMI(CYTHON_UNUSED PyObject *_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLHARAMI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLGRAVESTONEDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -17155,16 +17723,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_106CDLHARAMI(CYTHON_UNUSED PyObject *_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_109CDLHARAMICROSS(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_111CDLHAMMER(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_108CDLHARAMICROSS, "CDLHARAMICROSS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHARAMICROSS(open, high, low, close)\n\nHarami Cross Pattern (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_109CDLHARAMICROSS = {"CDLHARAMICROSS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_109CDLHARAMICROSS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_108CDLHARAMICROSS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_109CDLHARAMICROSS(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_110CDLHAMMER, "CDLHAMMER(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHAMMER(open, high, low, close)\n\nHammer (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_111CDLHAMMER = {"CDLHAMMER", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_111CDLHAMMER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_110CDLHAMMER}; +static PyObject *__pyx_pw_5talib_7_ta_lib_111CDLHAMMER(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -17185,7 +17753,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLHARAMICROSS (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLHAMMER (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -17197,44 +17765,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1606, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1609, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1606, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1609, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1606, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1609, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1606, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1609, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1606, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1609, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHARAMICROSS", 0) < (0)) __PYX_ERR(4, 1606, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHAMMER", 0) < (0)) __PYX_ERR(4, 1609, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHARAMICROSS", 1, 4, 4, i); __PYX_ERR(4, 1606, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHAMMER", 1, 4, 4, i); __PYX_ERR(4, 1609, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1606, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1609, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1606, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1609, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1606, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1609, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1606, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1609, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -17243,22 +17811,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLHARAMICROSS", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1606, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLHAMMER", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1609, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHARAMICROSS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHAMMER", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1608, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1608, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1608, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1608, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_108CDLHARAMICROSS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1611, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1611, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1611, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1611, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_110CDLHAMMER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -17277,7 +17845,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_108CDLHARAMICROSS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_110CDLHAMMER(CYTHON_UNUSED 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; @@ -17294,50 +17862,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_108CDLHARAMICROSS(CYTHON_UNUSED PyObje int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLHARAMICROSS", 0); + __Pyx_RefNannySetupContext("CDLHAMMER", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1625, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1628, __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(4, 1626, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1629, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1627, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1630, __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(4, 1628, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1631, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1629, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1632, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1630, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1633, __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_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(4, 1633, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1636, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLHAMMER(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMICROSS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1635, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHAMMER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1638, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -17350,7 +17918,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_108CDLHARAMICROSS(CYTHON_UNUSED PyObje /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLHARAMICROSS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHAMMER", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -17365,16 +17933,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_108CDLHARAMICROSS(CYTHON_UNUSED PyObje /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_111CDLHIGHWAVE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_113CDLHANGINGMAN(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_110CDLHIGHWAVE, "CDLHIGHWAVE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHIGHWAVE(open, high, low, close)\n\nHigh-Wave Candle (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_111CDLHIGHWAVE = {"CDLHIGHWAVE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_111CDLHIGHWAVE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_110CDLHIGHWAVE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_111CDLHIGHWAVE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_112CDLHANGINGMAN, "CDLHANGINGMAN(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHANGINGMAN(open, high, low, close)\n\nHanging Man (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_113CDLHANGINGMAN = {"CDLHANGINGMAN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_113CDLHANGINGMAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_112CDLHANGINGMAN}; +static PyObject *__pyx_pw_5talib_7_ta_lib_113CDLHANGINGMAN(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -17395,7 +17963,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLHIGHWAVE (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLHANGINGMAN (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -17407,44 +17975,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1638, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1641, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1638, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1641, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1638, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1641, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1638, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1641, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1638, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1641, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHIGHWAVE", 0) < (0)) __PYX_ERR(4, 1638, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHANGINGMAN", 0) < (0)) __PYX_ERR(4, 1641, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHIGHWAVE", 1, 4, 4, i); __PYX_ERR(4, 1638, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHANGINGMAN", 1, 4, 4, i); __PYX_ERR(4, 1641, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1638, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1641, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1638, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1641, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1638, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1641, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1638, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1641, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -17453,22 +18021,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLHIGHWAVE", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1638, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLHANGINGMAN", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1641, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHIGHWAVE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHANGINGMAN", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1640, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1640, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1640, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1640, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_110CDLHIGHWAVE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1643, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1643, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1643, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1643, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_112CDLHANGINGMAN(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -17487,7 +18055,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_110CDLHIGHWAVE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_112CDLHANGINGMAN(CYTHON_UNUSED 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; @@ -17504,50 +18072,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_110CDLHIGHWAVE(CYTHON_UNUSED PyObject int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLHIGHWAVE", 0); + __Pyx_RefNannySetupContext("CDLHANGINGMAN", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1657, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1660, __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(4, 1658, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1661, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1659, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1662, __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(4, 1660, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1663, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1661, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1664, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1662, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1665, __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_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(4, 1665, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1668, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLHANGINGMAN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIGHWAVE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1667, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHANGINGMAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1670, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -17560,7 +18128,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_110CDLHIGHWAVE(CYTHON_UNUSED PyObject /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLHIGHWAVE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHANGINGMAN", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -17575,16 +18143,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_110CDLHIGHWAVE(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_113CDLHIKKAKE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_115CDLHARAMI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_112CDLHIKKAKE, "CDLHIKKAKE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHIKKAKE(open, high, low, close)\n\nHikkake Pattern (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_113CDLHIKKAKE = {"CDLHIKKAKE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_113CDLHIKKAKE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_112CDLHIKKAKE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_113CDLHIKKAKE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_114CDLHARAMI, "CDLHARAMI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHARAMI(open, high, low, close)\n\nHarami Pattern (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_115CDLHARAMI = {"CDLHARAMI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_115CDLHARAMI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_114CDLHARAMI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_115CDLHARAMI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -17605,7 +18173,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLHIKKAKE (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLHARAMI (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -17617,44 +18185,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1670, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1673, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1670, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1673, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1670, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1673, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1670, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1673, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1670, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1673, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHIKKAKE", 0) < (0)) __PYX_ERR(4, 1670, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHARAMI", 0) < (0)) __PYX_ERR(4, 1673, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHIKKAKE", 1, 4, 4, i); __PYX_ERR(4, 1670, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHARAMI", 1, 4, 4, i); __PYX_ERR(4, 1673, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1670, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1673, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1670, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1673, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1670, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1673, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1670, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1673, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -17663,22 +18231,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLHIKKAKE", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1670, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLHARAMI", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1673, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHARAMI", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1672, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1672, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1672, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1672, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_112CDLHIKKAKE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1675, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1675, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1675, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1675, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_114CDLHARAMI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -17697,7 +18265,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_112CDLHIKKAKE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_114CDLHARAMI(CYTHON_UNUSED 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; @@ -17714,50 +18282,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_112CDLHIKKAKE(CYTHON_UNUSED PyObject * int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLHIKKAKE", 0); + __Pyx_RefNannySetupContext("CDLHARAMI", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1689, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1692, __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(4, 1690, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1693, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1691, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1694, __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(4, 1692, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1695, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1693, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1696, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1694, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1697, __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_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(4, 1697, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1700, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLHARAMI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1699, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1702, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -17770,7 +18338,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_112CDLHIKKAKE(CYTHON_UNUSED PyObject * /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHARAMI", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -17785,16 +18353,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_112CDLHIKKAKE(CYTHON_UNUSED PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_115CDLHIKKAKEMOD(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_117CDLHARAMICROSS(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_114CDLHIKKAKEMOD, "CDLHIKKAKEMOD(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHIKKAKEMOD(open, high, low, close)\n\nModified Hikkake Pattern (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_115CDLHIKKAKEMOD = {"CDLHIKKAKEMOD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_115CDLHIKKAKEMOD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_114CDLHIKKAKEMOD}; -static PyObject *__pyx_pw_5talib_7_ta_lib_115CDLHIKKAKEMOD(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_116CDLHARAMICROSS, "CDLHARAMICROSS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHARAMICROSS(open, high, low, close)\n\nHarami Cross Pattern (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_117CDLHARAMICROSS = {"CDLHARAMICROSS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_117CDLHARAMICROSS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_116CDLHARAMICROSS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_117CDLHARAMICROSS(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -17815,7 +18383,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLHIKKAKEMOD (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLHARAMICROSS (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -17827,44 +18395,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1702, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1705, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1702, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1705, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1702, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1705, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1702, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1705, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1702, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1705, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHIKKAKEMOD", 0) < (0)) __PYX_ERR(4, 1702, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHARAMICROSS", 0) < (0)) __PYX_ERR(4, 1705, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHIKKAKEMOD", 1, 4, 4, i); __PYX_ERR(4, 1702, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHARAMICROSS", 1, 4, 4, i); __PYX_ERR(4, 1705, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1702, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1705, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1702, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1705, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1702, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1705, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1702, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1705, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -17873,22 +18441,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLHIKKAKEMOD", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1702, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLHARAMICROSS", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1705, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKEMOD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHARAMICROSS", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1704, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1704, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1704, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1704, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_114CDLHIKKAKEMOD(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1707, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1707, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1707, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1707, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_116CDLHARAMICROSS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -17907,7 +18475,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_114CDLHIKKAKEMOD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_116CDLHARAMICROSS(CYTHON_UNUSED 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; @@ -17924,50 +18492,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_114CDLHIKKAKEMOD(CYTHON_UNUSED PyObjec int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLHIKKAKEMOD", 0); + __Pyx_RefNannySetupContext("CDLHARAMICROSS", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1721, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1724, __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(4, 1722, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1725, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1723, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1726, __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(4, 1724, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1727, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1725, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1728, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1726, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1729, __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_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(4, 1729, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1732, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLHARAMICROSS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKEMOD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1731, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMICROSS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1734, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -17980,7 +18548,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_114CDLHIKKAKEMOD(CYTHON_UNUSED PyObjec /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKEMOD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHARAMICROSS", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -17995,16 +18563,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_114CDLHIKKAKEMOD(CYTHON_UNUSED PyObjec /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_117CDLHOMINGPIGEON(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_119CDLHIGHWAVE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_116CDLHOMINGPIGEON, "CDLHOMINGPIGEON(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHOMINGPIGEON(open, high, low, close)\n\nHoming Pigeon (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_117CDLHOMINGPIGEON = {"CDLHOMINGPIGEON", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_117CDLHOMINGPIGEON, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_116CDLHOMINGPIGEON}; -static PyObject *__pyx_pw_5talib_7_ta_lib_117CDLHOMINGPIGEON(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_118CDLHIGHWAVE, "CDLHIGHWAVE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHIGHWAVE(open, high, low, close)\n\nHigh-Wave Candle (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_119CDLHIGHWAVE = {"CDLHIGHWAVE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_119CDLHIGHWAVE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_118CDLHIGHWAVE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_119CDLHIGHWAVE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -18025,7 +18593,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLHOMINGPIGEON (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLHIGHWAVE (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -18037,44 +18605,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1734, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1737, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1734, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1737, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1734, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1737, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1734, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1737, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1734, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1737, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHOMINGPIGEON", 0) < (0)) __PYX_ERR(4, 1734, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHIGHWAVE", 0) < (0)) __PYX_ERR(4, 1737, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHOMINGPIGEON", 1, 4, 4, i); __PYX_ERR(4, 1734, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHIGHWAVE", 1, 4, 4, i); __PYX_ERR(4, 1737, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1734, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1737, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1734, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1737, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1734, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1737, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1734, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1737, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -18083,22 +18651,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLHOMINGPIGEON", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1734, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLHIGHWAVE", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1737, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHOMINGPIGEON", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHIGHWAVE", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1736, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1736, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1736, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1736, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_116CDLHOMINGPIGEON(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1739, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1739, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1739, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1739, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_118CDLHIGHWAVE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -18117,7 +18685,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_116CDLHOMINGPIGEON(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_118CDLHIGHWAVE(CYTHON_UNUSED 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; @@ -18134,50 +18702,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_116CDLHOMINGPIGEON(CYTHON_UNUSED PyObj int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLHOMINGPIGEON", 0); + __Pyx_RefNannySetupContext("CDLHIGHWAVE", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1753, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1756, __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(4, 1754, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1757, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1755, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1758, __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(4, 1756, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1759, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1757, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1760, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1758, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1761, __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_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(4, 1761, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1764, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLHIGHWAVE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHOMINGPIGEON, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1763, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIGHWAVE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1766, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -18190,7 +18758,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_116CDLHOMINGPIGEON(CYTHON_UNUSED PyObj /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLHOMINGPIGEON", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHIGHWAVE", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -18205,16 +18773,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_116CDLHOMINGPIGEON(CYTHON_UNUSED PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_119CDLIDENTICAL3CROWS(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_121CDLHIKKAKE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_118CDLIDENTICAL3CROWS, "CDLIDENTICAL3CROWS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLIDENTICAL3CROWS(open, high, low, close)\n\nIdentical Three Crows (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_119CDLIDENTICAL3CROWS = {"CDLIDENTICAL3CROWS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_119CDLIDENTICAL3CROWS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_118CDLIDENTICAL3CROWS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_119CDLIDENTICAL3CROWS(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_120CDLHIKKAKE, "CDLHIKKAKE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHIKKAKE(open, high, low, close)\n\nHikkake Pattern (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_121CDLHIKKAKE = {"CDLHIKKAKE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_121CDLHIKKAKE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_120CDLHIKKAKE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_121CDLHIKKAKE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -18235,7 +18803,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLIDENTICAL3CROWS (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLHIKKAKE (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -18247,44 +18815,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1766, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1769, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1766, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1769, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1766, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1769, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1766, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1769, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1766, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1769, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLIDENTICAL3CROWS", 0) < (0)) __PYX_ERR(4, 1766, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHIKKAKE", 0) < (0)) __PYX_ERR(4, 1769, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLIDENTICAL3CROWS", 1, 4, 4, i); __PYX_ERR(4, 1766, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHIKKAKE", 1, 4, 4, i); __PYX_ERR(4, 1769, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1766, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1769, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1766, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1769, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1766, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1769, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1766, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1769, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -18293,22 +18861,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLIDENTICAL3CROWS", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1766, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLHIKKAKE", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1769, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLIDENTICAL3CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKE", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1768, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1768, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1768, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1768, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_118CDLIDENTICAL3CROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1771, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1771, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1771, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1771, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_120CDLHIKKAKE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -18327,7 +18895,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_118CDLIDENTICAL3CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_120CDLHIKKAKE(CYTHON_UNUSED 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; @@ -18344,50 +18912,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_118CDLIDENTICAL3CROWS(CYTHON_UNUSED Py int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLIDENTICAL3CROWS", 0); + __Pyx_RefNannySetupContext("CDLHIKKAKE", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1785, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1788, __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(4, 1786, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1789, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1787, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1790, __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(4, 1788, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1791, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1789, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1792, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1790, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1793, __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_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(4, 1793, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1796, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLHIKKAKE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLIDENTICAL3CROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1795, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1798, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -18400,7 +18968,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_118CDLIDENTICAL3CROWS(CYTHON_UNUSED Py /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLIDENTICAL3CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKE", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -18415,16 +18983,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_118CDLIDENTICAL3CROWS(CYTHON_UNUSED Py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_121CDLINNECK(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_123CDLHIKKAKEMOD(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_120CDLINNECK, "CDLINNECK(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLINNECK(open, high, low, close)\n\nIn-Neck Pattern (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_121CDLINNECK = {"CDLINNECK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_121CDLINNECK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_120CDLINNECK}; -static PyObject *__pyx_pw_5talib_7_ta_lib_121CDLINNECK(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_122CDLHIKKAKEMOD, "CDLHIKKAKEMOD(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHIKKAKEMOD(open, high, low, close)\n\nModified Hikkake Pattern (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_123CDLHIKKAKEMOD = {"CDLHIKKAKEMOD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_123CDLHIKKAKEMOD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_122CDLHIKKAKEMOD}; +static PyObject *__pyx_pw_5talib_7_ta_lib_123CDLHIKKAKEMOD(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -18445,7 +19013,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLINNECK (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLHIKKAKEMOD (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -18457,44 +19025,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1798, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1801, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1798, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1801, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1798, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1801, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1798, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1801, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1798, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1801, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLINNECK", 0) < (0)) __PYX_ERR(4, 1798, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHIKKAKEMOD", 0) < (0)) __PYX_ERR(4, 1801, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLINNECK", 1, 4, 4, i); __PYX_ERR(4, 1798, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHIKKAKEMOD", 1, 4, 4, i); __PYX_ERR(4, 1801, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1798, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1801, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1798, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1801, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1798, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1801, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1798, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1801, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -18503,22 +19071,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLINNECK", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1798, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLHIKKAKEMOD", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1801, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLINNECK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKEMOD", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1800, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1800, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1800, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1800, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_120CDLINNECK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1803, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1803, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1803, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1803, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_122CDLHIKKAKEMOD(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -18537,7 +19105,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_120CDLINNECK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_122CDLHIKKAKEMOD(CYTHON_UNUSED 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; @@ -18554,50 +19122,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_120CDLINNECK(CYTHON_UNUSED PyObject *_ int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLINNECK", 0); + __Pyx_RefNannySetupContext("CDLHIKKAKEMOD", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1817, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1820, __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(4, 1818, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1821, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1819, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1822, __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(4, 1820, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1823, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1821, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1824, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1822, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1825, __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_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(4, 1825, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1828, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLHIKKAKEMOD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINNECK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1827, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKEMOD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1830, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -18610,7 +19178,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_120CDLINNECK(CYTHON_UNUSED PyObject *_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLINNECK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKEMOD", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -18625,16 +19193,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_120CDLINNECK(CYTHON_UNUSED PyObject *_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_123CDLINVERTEDHAMMER(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_125CDLHOMINGPIGEON(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_122CDLINVERTEDHAMMER, "CDLINVERTEDHAMMER(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLINVERTEDHAMMER(open, high, low, close)\n\nInverted Hammer (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_123CDLINVERTEDHAMMER = {"CDLINVERTEDHAMMER", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_123CDLINVERTEDHAMMER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_122CDLINVERTEDHAMMER}; -static PyObject *__pyx_pw_5talib_7_ta_lib_123CDLINVERTEDHAMMER(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_124CDLHOMINGPIGEON, "CDLHOMINGPIGEON(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHOMINGPIGEON(open, high, low, close)\n\nHoming Pigeon (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_125CDLHOMINGPIGEON = {"CDLHOMINGPIGEON", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_125CDLHOMINGPIGEON, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_124CDLHOMINGPIGEON}; +static PyObject *__pyx_pw_5talib_7_ta_lib_125CDLHOMINGPIGEON(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -18655,7 +19223,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLINVERTEDHAMMER (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLHOMINGPIGEON (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -18667,44 +19235,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1830, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1833, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1830, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1833, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1830, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1833, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1830, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1833, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1830, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1833, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLINVERTEDHAMMER", 0) < (0)) __PYX_ERR(4, 1830, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHOMINGPIGEON", 0) < (0)) __PYX_ERR(4, 1833, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLINVERTEDHAMMER", 1, 4, 4, i); __PYX_ERR(4, 1830, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHOMINGPIGEON", 1, 4, 4, i); __PYX_ERR(4, 1833, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1830, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1833, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1830, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1833, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1830, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1833, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1830, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1833, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -18713,22 +19281,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLINVERTEDHAMMER", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1830, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLHOMINGPIGEON", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1833, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLINVERTEDHAMMER", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHOMINGPIGEON", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1832, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1832, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1832, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1832, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_122CDLINVERTEDHAMMER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1835, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1835, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1835, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1835, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_124CDLHOMINGPIGEON(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -18747,7 +19315,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_122CDLINVERTEDHAMMER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_124CDLHOMINGPIGEON(CYTHON_UNUSED 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; @@ -18764,50 +19332,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_122CDLINVERTEDHAMMER(CYTHON_UNUSED PyO int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLINVERTEDHAMMER", 0); + __Pyx_RefNannySetupContext("CDLHOMINGPIGEON", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1849, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1852, __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(4, 1850, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1853, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1851, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1854, __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(4, 1852, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1855, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1853, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1856, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1854, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1857, __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_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(4, 1857, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1860, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLHOMINGPIGEON(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINVERTEDHAMMER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1859, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHOMINGPIGEON, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1862, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -18820,7 +19388,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_122CDLINVERTEDHAMMER(CYTHON_UNUSED PyO /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLINVERTEDHAMMER", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHOMINGPIGEON", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -18835,16 +19403,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_122CDLINVERTEDHAMMER(CYTHON_UNUSED PyO /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_125CDLKICKING(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_127CDLIDENTICAL3CROWS(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_124CDLKICKING, "CDLKICKING(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLKICKING(open, high, low, close)\n\nKicking (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_125CDLKICKING = {"CDLKICKING", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_125CDLKICKING, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_124CDLKICKING}; -static PyObject *__pyx_pw_5talib_7_ta_lib_125CDLKICKING(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_126CDLIDENTICAL3CROWS, "CDLIDENTICAL3CROWS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLIDENTICAL3CROWS(open, high, low, close)\n\nIdentical Three Crows (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_127CDLIDENTICAL3CROWS = {"CDLIDENTICAL3CROWS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_127CDLIDENTICAL3CROWS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_126CDLIDENTICAL3CROWS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_127CDLIDENTICAL3CROWS(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -18865,7 +19433,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLKICKING (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLIDENTICAL3CROWS (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -18877,44 +19445,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1862, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1865, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1862, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1865, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1862, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1865, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1862, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1865, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1862, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1865, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLKICKING", 0) < (0)) __PYX_ERR(4, 1862, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLIDENTICAL3CROWS", 0) < (0)) __PYX_ERR(4, 1865, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLKICKING", 1, 4, 4, i); __PYX_ERR(4, 1862, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLIDENTICAL3CROWS", 1, 4, 4, i); __PYX_ERR(4, 1865, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1862, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1865, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1862, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1865, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1862, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1865, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1862, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1865, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -18923,22 +19491,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLKICKING", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1862, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLIDENTICAL3CROWS", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1865, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLKICKING", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLIDENTICAL3CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1864, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1864, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1864, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1864, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_124CDLKICKING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1867, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1867, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1867, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1867, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_126CDLIDENTICAL3CROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -18957,7 +19525,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_124CDLKICKING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_126CDLIDENTICAL3CROWS(CYTHON_UNUSED 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; @@ -18974,50 +19542,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_124CDLKICKING(CYTHON_UNUSED PyObject * int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLKICKING", 0); + __Pyx_RefNannySetupContext("CDLIDENTICAL3CROWS", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1881, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1884, __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(4, 1882, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1885, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1883, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1886, __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(4, 1884, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1887, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1885, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1888, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1886, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1889, __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_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(4, 1889, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1892, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLIDENTICAL3CROWS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1891, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLIDENTICAL3CROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1894, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -19030,7 +19598,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_124CDLKICKING(CYTHON_UNUSED PyObject * /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLKICKING", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLIDENTICAL3CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -19045,16 +19613,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_124CDLKICKING(CYTHON_UNUSED PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_127CDLKICKINGBYLENGTH(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_129CDLINNECK(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_126CDLKICKINGBYLENGTH, "CDLKICKINGBYLENGTH(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLKICKINGBYLENGTH(open, high, low, close)\n\nKicking - bull/bear determined by the longer marubozu (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_127CDLKICKINGBYLENGTH = {"CDLKICKINGBYLENGTH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_127CDLKICKINGBYLENGTH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_126CDLKICKINGBYLENGTH}; -static PyObject *__pyx_pw_5talib_7_ta_lib_127CDLKICKINGBYLENGTH(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_128CDLINNECK, "CDLINNECK(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLINNECK(open, high, low, close)\n\nIn-Neck Pattern (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_129CDLINNECK = {"CDLINNECK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_129CDLINNECK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_128CDLINNECK}; +static PyObject *__pyx_pw_5talib_7_ta_lib_129CDLINNECK(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -19075,7 +19643,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLKICKINGBYLENGTH (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLINNECK (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -19087,44 +19655,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1894, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1897, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1894, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1897, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1894, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1897, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1894, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1897, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1894, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1897, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLKICKINGBYLENGTH", 0) < (0)) __PYX_ERR(4, 1894, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLINNECK", 0) < (0)) __PYX_ERR(4, 1897, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLKICKINGBYLENGTH", 1, 4, 4, i); __PYX_ERR(4, 1894, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLINNECK", 1, 4, 4, i); __PYX_ERR(4, 1897, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1894, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1897, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1894, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1897, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1894, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1897, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1894, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1897, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -19133,22 +19701,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLKICKINGBYLENGTH", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1894, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLINNECK", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1897, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLKICKINGBYLENGTH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLINNECK", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1896, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1896, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1896, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1896, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_126CDLKICKINGBYLENGTH(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1899, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1899, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1899, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1899, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_128CDLINNECK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -19167,7 +19735,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_126CDLKICKINGBYLENGTH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_128CDLINNECK(CYTHON_UNUSED 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; @@ -19184,50 +19752,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_126CDLKICKINGBYLENGTH(CYTHON_UNUSED Py int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLKICKINGBYLENGTH", 0); + __Pyx_RefNannySetupContext("CDLINNECK", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1913, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1916, __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(4, 1914, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1917, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1915, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1918, __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(4, 1916, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1919, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1917, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1920, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1918, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1921, __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_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(4, 1921, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1924, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLINNECK(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKINGBYLENGTH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1923, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINNECK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1926, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -19240,7 +19808,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_126CDLKICKINGBYLENGTH(CYTHON_UNUSED Py /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLKICKINGBYLENGTH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLINNECK", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -19255,16 +19823,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_126CDLKICKINGBYLENGTH(CYTHON_UNUSED Py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_129CDLLADDERBOTTOM(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_131CDLINVERTEDHAMMER(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_128CDLLADDERBOTTOM, "CDLLADDERBOTTOM(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLLADDERBOTTOM(open, high, low, close)\n\nLadder Bottom (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_129CDLLADDERBOTTOM = {"CDLLADDERBOTTOM", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_129CDLLADDERBOTTOM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_128CDLLADDERBOTTOM}; -static PyObject *__pyx_pw_5talib_7_ta_lib_129CDLLADDERBOTTOM(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_130CDLINVERTEDHAMMER, "CDLINVERTEDHAMMER(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLINVERTEDHAMMER(open, high, low, close)\n\nInverted Hammer (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_131CDLINVERTEDHAMMER = {"CDLINVERTEDHAMMER", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_131CDLINVERTEDHAMMER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_130CDLINVERTEDHAMMER}; +static PyObject *__pyx_pw_5talib_7_ta_lib_131CDLINVERTEDHAMMER(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -19285,7 +19853,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLLADDERBOTTOM (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLINVERTEDHAMMER (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -19297,44 +19865,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1926, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1929, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1926, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1929, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1926, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1929, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1926, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1929, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1926, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1929, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLLADDERBOTTOM", 0) < (0)) __PYX_ERR(4, 1926, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLINVERTEDHAMMER", 0) < (0)) __PYX_ERR(4, 1929, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLLADDERBOTTOM", 1, 4, 4, i); __PYX_ERR(4, 1926, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLINVERTEDHAMMER", 1, 4, 4, i); __PYX_ERR(4, 1929, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1926, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1929, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1926, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1929, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1926, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1929, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1926, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1929, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -19343,22 +19911,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLLADDERBOTTOM", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1926, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLINVERTEDHAMMER", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1929, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLLADDERBOTTOM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLINVERTEDHAMMER", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1928, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1928, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1928, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1928, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_128CDLLADDERBOTTOM(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1931, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1931, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1931, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1931, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_130CDLINVERTEDHAMMER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -19377,7 +19945,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_128CDLLADDERBOTTOM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_130CDLINVERTEDHAMMER(CYTHON_UNUSED 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; @@ -19394,50 +19962,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_128CDLLADDERBOTTOM(CYTHON_UNUSED PyObj int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLLADDERBOTTOM", 0); + __Pyx_RefNannySetupContext("CDLINVERTEDHAMMER", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1945, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1948, __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(4, 1946, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1949, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1947, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1950, __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(4, 1948, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1951, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1949, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1952, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1950, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1953, __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_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(4, 1953, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1956, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLINVERTEDHAMMER(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLADDERBOTTOM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1955, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINVERTEDHAMMER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -19450,7 +20018,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_128CDLLADDERBOTTOM(CYTHON_UNUSED PyObj /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLLADDERBOTTOM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLINVERTEDHAMMER", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -19465,16 +20033,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_128CDLLADDERBOTTOM(CYTHON_UNUSED PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_131CDLLONGLEGGEDDOJI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_133CDLKICKING(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_130CDLLONGLEGGEDDOJI, "CDLLONGLEGGEDDOJI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLLONGLEGGEDDOJI(open, high, low, close)\n\nLong Legged Doji (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_131CDLLONGLEGGEDDOJI = {"CDLLONGLEGGEDDOJI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_131CDLLONGLEGGEDDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_130CDLLONGLEGGEDDOJI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_131CDLLONGLEGGEDDOJI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_132CDLKICKING, "CDLKICKING(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLKICKING(open, high, low, close)\n\nKicking (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_133CDLKICKING = {"CDLKICKING", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_133CDLKICKING, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_132CDLKICKING}; +static PyObject *__pyx_pw_5talib_7_ta_lib_133CDLKICKING(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -19495,7 +20063,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLLONGLEGGEDDOJI (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLKICKING (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -19507,44 +20075,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1958, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1961, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1958, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1961, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1958, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1961, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1958, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1961, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1958, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1961, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLLONGLEGGEDDOJI", 0) < (0)) __PYX_ERR(4, 1958, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLKICKING", 0) < (0)) __PYX_ERR(4, 1961, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLLONGLEGGEDDOJI", 1, 4, 4, i); __PYX_ERR(4, 1958, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLKICKING", 1, 4, 4, i); __PYX_ERR(4, 1961, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1958, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1961, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1958, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1961, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1958, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1961, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1958, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1961, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -19553,22 +20121,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLLONGLEGGEDDOJI", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1958, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLKICKING", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1961, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLLONGLEGGEDDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLKICKING", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1960, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1960, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1960, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1960, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_130CDLLONGLEGGEDDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1963, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1963, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1963, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1963, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_132CDLKICKING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -19587,7 +20155,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_130CDLLONGLEGGEDDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_132CDLKICKING(CYTHON_UNUSED 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; @@ -19604,50 +20172,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_130CDLLONGLEGGEDDOJI(CYTHON_UNUSED PyO int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLLONGLEGGEDDOJI", 0); + __Pyx_RefNannySetupContext("CDLKICKING", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1977, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1980, __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(4, 1978, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1981, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1979, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1982, __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(4, 1980, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1983, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1981, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1984, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1982, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1985, __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_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(4, 1985, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1988, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLKICKING(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLEGGEDDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1987, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1990, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -19660,7 +20228,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_130CDLLONGLEGGEDDOJI(CYTHON_UNUSED PyO /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLLONGLEGGEDDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLKICKING", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -19675,16 +20243,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_130CDLLONGLEGGEDDOJI(CYTHON_UNUSED PyO /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_133CDLLONGLINE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_135CDLKICKINGBYLENGTH(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_132CDLLONGLINE, "CDLLONGLINE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLLONGLINE(open, high, low, close)\n\nLong Line Candle (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_133CDLLONGLINE = {"CDLLONGLINE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_133CDLLONGLINE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_132CDLLONGLINE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_133CDLLONGLINE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_134CDLKICKINGBYLENGTH, "CDLKICKINGBYLENGTH(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLKICKINGBYLENGTH(open, high, low, close)\n\nKicking - bull/bear determined by the longer marubozu (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_135CDLKICKINGBYLENGTH = {"CDLKICKINGBYLENGTH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_135CDLKICKINGBYLENGTH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_134CDLKICKINGBYLENGTH}; +static PyObject *__pyx_pw_5talib_7_ta_lib_135CDLKICKINGBYLENGTH(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -19705,7 +20273,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLLONGLINE (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLKICKINGBYLENGTH (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -19717,44 +20285,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1990, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1993, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1990, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1993, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1990, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1993, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1990, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1993, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1990, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1993, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLLONGLINE", 0) < (0)) __PYX_ERR(4, 1990, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLKICKINGBYLENGTH", 0) < (0)) __PYX_ERR(4, 1993, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLLONGLINE", 1, 4, 4, i); __PYX_ERR(4, 1990, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLKICKINGBYLENGTH", 1, 4, 4, i); __PYX_ERR(4, 1993, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1990, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1993, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1990, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1993, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1990, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1993, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1990, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1993, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -19763,22 +20331,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLLONGLINE", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1990, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLKICKINGBYLENGTH", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1993, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLLONGLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLKICKINGBYLENGTH", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1992, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1992, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1992, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1992, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_132CDLLONGLINE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1995, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1995, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1995, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1995, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_134CDLKICKINGBYLENGTH(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -19797,7 +20365,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_132CDLLONGLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_134CDLKICKINGBYLENGTH(CYTHON_UNUSED 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; @@ -19814,50 +20382,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_132CDLLONGLINE(CYTHON_UNUSED PyObject int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLLONGLINE", 0); + __Pyx_RefNannySetupContext("CDLKICKINGBYLENGTH", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2009, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2012, __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(4, 2010, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2013, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2011, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2014, __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(4, 2012, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2015, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2013, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2016, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2014, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2017, __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_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(4, 2017, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2020, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLKICKINGBYLENGTH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2019, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKINGBYLENGTH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2022, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -19870,7 +20438,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_132CDLLONGLINE(CYTHON_UNUSED PyObject /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLLONGLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLKICKINGBYLENGTH", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -19885,16 +20453,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_132CDLLONGLINE(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_135CDLMARUBOZU(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_137CDLLADDERBOTTOM(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_134CDLMARUBOZU, "CDLMARUBOZU(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLMARUBOZU(open, high, low, close)\n\nMarubozu (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_135CDLMARUBOZU = {"CDLMARUBOZU", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_135CDLMARUBOZU, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_134CDLMARUBOZU}; -static PyObject *__pyx_pw_5talib_7_ta_lib_135CDLMARUBOZU(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_136CDLLADDERBOTTOM, "CDLLADDERBOTTOM(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLLADDERBOTTOM(open, high, low, close)\n\nLadder Bottom (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_137CDLLADDERBOTTOM = {"CDLLADDERBOTTOM", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_137CDLLADDERBOTTOM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_136CDLLADDERBOTTOM}; +static PyObject *__pyx_pw_5talib_7_ta_lib_137CDLLADDERBOTTOM(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -19915,7 +20483,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLMARUBOZU (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLLADDERBOTTOM (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -19927,44 +20495,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2022, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2025, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2022, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2025, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2022, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2025, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2022, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2025, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2022, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2025, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLMARUBOZU", 0) < (0)) __PYX_ERR(4, 2022, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLLADDERBOTTOM", 0) < (0)) __PYX_ERR(4, 2025, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLMARUBOZU", 1, 4, 4, i); __PYX_ERR(4, 2022, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLLADDERBOTTOM", 1, 4, 4, i); __PYX_ERR(4, 2025, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2022, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2025, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2022, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2025, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2022, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2025, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2022, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2025, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -19973,22 +20541,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLMARUBOZU", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2022, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLLADDERBOTTOM", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2025, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLMARUBOZU", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLLADDERBOTTOM", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2024, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2024, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2024, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2024, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_134CDLMARUBOZU(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2027, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2027, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2027, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2027, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_136CDLLADDERBOTTOM(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -20007,7 +20575,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_134CDLMARUBOZU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_136CDLLADDERBOTTOM(CYTHON_UNUSED 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; @@ -20024,50 +20592,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_134CDLMARUBOZU(CYTHON_UNUSED PyObject int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLMARUBOZU", 0); + __Pyx_RefNannySetupContext("CDLLADDERBOTTOM", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2041, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2044, __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(4, 2042, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2045, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2043, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2046, __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(4, 2044, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2047, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2045, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2048, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2046, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2049, __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_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(4, 2049, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2052, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLLADDERBOTTOM(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMARUBOZU, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2051, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLADDERBOTTOM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2054, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -20080,7 +20648,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_134CDLMARUBOZU(CYTHON_UNUSED PyObject /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLMARUBOZU", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLLADDERBOTTOM", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -20095,16 +20663,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_134CDLMARUBOZU(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_137CDLMATCHINGLOW(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_139CDLLONGLEGGEDDOJI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_136CDLMATCHINGLOW, "CDLMATCHINGLOW(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLMATCHINGLOW(open, high, low, close)\n\nMatching Low (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_137CDLMATCHINGLOW = {"CDLMATCHINGLOW", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_137CDLMATCHINGLOW, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_136CDLMATCHINGLOW}; -static PyObject *__pyx_pw_5talib_7_ta_lib_137CDLMATCHINGLOW(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_138CDLLONGLEGGEDDOJI, "CDLLONGLEGGEDDOJI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLLONGLEGGEDDOJI(open, high, low, close)\n\nLong Legged Doji (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_139CDLLONGLEGGEDDOJI = {"CDLLONGLEGGEDDOJI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_139CDLLONGLEGGEDDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_138CDLLONGLEGGEDDOJI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_139CDLLONGLEGGEDDOJI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -20125,7 +20693,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLMATCHINGLOW (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLLONGLEGGEDDOJI (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -20137,44 +20705,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2054, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2057, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2054, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2057, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2054, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2057, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2054, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2057, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2054, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2057, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLMATCHINGLOW", 0) < (0)) __PYX_ERR(4, 2054, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLLONGLEGGEDDOJI", 0) < (0)) __PYX_ERR(4, 2057, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLMATCHINGLOW", 1, 4, 4, i); __PYX_ERR(4, 2054, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLLONGLEGGEDDOJI", 1, 4, 4, i); __PYX_ERR(4, 2057, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2054, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2057, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2054, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2057, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2054, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2057, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2054, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2057, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -20183,22 +20751,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLMATCHINGLOW", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2054, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLLONGLEGGEDDOJI", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2057, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLMATCHINGLOW", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLLONGLEGGEDDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2056, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2056, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2056, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2056, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_136CDLMATCHINGLOW(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2059, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2059, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2059, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2059, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_138CDLLONGLEGGEDDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -20217,7 +20785,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_136CDLMATCHINGLOW(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_138CDLLONGLEGGEDDOJI(CYTHON_UNUSED 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; @@ -20234,50 +20802,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_136CDLMATCHINGLOW(CYTHON_UNUSED PyObje int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLMATCHINGLOW", 0); + __Pyx_RefNannySetupContext("CDLLONGLEGGEDDOJI", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2073, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2076, __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(4, 2074, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2077, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2075, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2078, __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(4, 2076, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2079, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2077, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2080, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2078, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2081, __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_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(4, 2081, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2084, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLLONGLEGGEDDOJI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATCHINGLOW, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2083, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLEGGEDDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2086, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -20290,7 +20858,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_136CDLMATCHINGLOW(CYTHON_UNUSED PyObje /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLMATCHINGLOW", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLLONGLEGGEDDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -20305,16 +20873,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_136CDLMATCHINGLOW(CYTHON_UNUSED PyObje /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_139CDLMATHOLD(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_141CDLLONGLINE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_138CDLMATHOLD, "CDLMATHOLD(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.5)\n\nCDLMATHOLD(open, high, low, close[, penetration=?])\n\nMat Hold (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nParameters:\n penetration: 0.5\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_139CDLMATHOLD = {"CDLMATHOLD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_139CDLMATHOLD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_138CDLMATHOLD}; -static PyObject *__pyx_pw_5talib_7_ta_lib_139CDLMATHOLD(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_140CDLLONGLINE, "CDLLONGLINE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLLONGLINE(open, high, low, close)\n\nLong Line Candle (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_141CDLLONGLINE = {"CDLLONGLINE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_141CDLLONGLINE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_140CDLLONGLINE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_141CDLLONGLINE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -20325,18 +20893,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; - double __pyx_v_penetration; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLMATHOLD (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLLONGLINE (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -20346,86 +20913,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2086, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2089, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 2086, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2086, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2089, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2086, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2089, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2086, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2089, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2086, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2089, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLMATHOLD", 0) < (0)) __PYX_ERR(4, 2086, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLLONGLINE", 0) < (0)) __PYX_ERR(4, 2089, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLMATHOLD", 0, 4, 5, i); __PYX_ERR(4, 2086, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLLONGLINE", 1, 4, 4, i); __PYX_ERR(4, 2089, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 2086, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2086, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2086, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2086, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2086, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2089, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2089, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2089, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2089, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); __pyx_v_low = ((PyArrayObject *)values[2]); __pyx_v_close = ((PyArrayObject *)values[3]); - if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 2088, __pyx_L3_error) - } else { - __pyx_v_penetration = ((double)((double)0.5)); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLMATHOLD", 0, 4, 5, __pyx_nargs); __PYX_ERR(4, 2086, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLLONGLINE", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2089, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLMATHOLD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLLONGLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2088, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2088, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2088, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2088, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_138CDLMATHOLD(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2091, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2091, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2091, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2091, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_140CDLLONGLINE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -20444,7 +20995,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_138CDLMATHOLD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { +static PyObject *__pyx_pf_5talib_7_ta_lib_140CDLLONGLINE(CYTHON_UNUSED 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; @@ -20461,50 +21012,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_138CDLMATHOLD(CYTHON_UNUSED PyObject * int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLMATHOLD", 0); + __Pyx_RefNannySetupContext("CDLLONGLINE", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2107, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2108, __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(4, 2108, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2109, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2110, __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(4, 2110, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2111, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2112, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2112, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2113, __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_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(4, 2115, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2116, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLLONGLINE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATHOLD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2117, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -20517,7 +21068,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_138CDLMATHOLD(CYTHON_UNUSED PyObject * /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLMATHOLD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLLONGLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -20532,16 +21083,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_138CDLMATHOLD(CYTHON_UNUSED PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_141CDLMORNINGDOJISTAR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_143CDLMARUBOZU(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_140CDLMORNINGDOJISTAR, "CDLMORNINGDOJISTAR(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\n\nCDLMORNINGDOJISTAR(open, high, low, close[, penetration=?])\n\nMorning Doji Star (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_141CDLMORNINGDOJISTAR = {"CDLMORNINGDOJISTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_141CDLMORNINGDOJISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_140CDLMORNINGDOJISTAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_141CDLMORNINGDOJISTAR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_142CDLMARUBOZU, "CDLMARUBOZU(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLMARUBOZU(open, high, low, close)\n\nMarubozu (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_143CDLMARUBOZU = {"CDLMARUBOZU", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_143CDLMARUBOZU, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_142CDLMARUBOZU}; +static PyObject *__pyx_pw_5talib_7_ta_lib_143CDLMARUBOZU(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -20552,18 +21103,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; - double __pyx_v_penetration; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLMORNINGDOJISTAR (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLMARUBOZU (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -20573,86 +21123,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2120, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2121, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 2120, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2120, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2121, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2120, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2121, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2120, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2121, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2120, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2121, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLMORNINGDOJISTAR", 0) < (0)) __PYX_ERR(4, 2120, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLMARUBOZU", 0) < (0)) __PYX_ERR(4, 2121, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLMORNINGDOJISTAR", 0, 4, 5, i); __PYX_ERR(4, 2120, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLMARUBOZU", 1, 4, 4, i); __PYX_ERR(4, 2121, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 2120, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2120, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2120, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2120, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2120, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2121, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2121, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2121, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2121, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); __pyx_v_low = ((PyArrayObject *)values[2]); __pyx_v_close = ((PyArrayObject *)values[3]); - if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 2122, __pyx_L3_error) - } else { - __pyx_v_penetration = ((double)((double)0.3)); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLMORNINGDOJISTAR", 0, 4, 5, __pyx_nargs); __PYX_ERR(4, 2120, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLMARUBOZU", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2121, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMARUBOZU", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2122, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2122, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2122, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2122, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_140CDLMORNINGDOJISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2123, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2123, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2123, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2123, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_142CDLMARUBOZU(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -20671,7 +21205,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_140CDLMORNINGDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { +static PyObject *__pyx_pf_5talib_7_ta_lib_142CDLMARUBOZU(CYTHON_UNUSED 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; @@ -20688,50 +21222,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_140CDLMORNINGDOJISTAR(CYTHON_UNUSED Py int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLMORNINGDOJISTAR", 0); + __Pyx_RefNannySetupContext("CDLMARUBOZU", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2141, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2140, __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(4, 2142, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2143, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2142, __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(4, 2144, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2143, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2145, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2144, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2146, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2145, __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_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(4, 2149, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2148, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLMARUBOZU(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGDOJISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2151, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMARUBOZU, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -20744,7 +21278,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_140CDLMORNINGDOJISTAR(CYTHON_UNUSED Py /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMARUBOZU", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -20759,16 +21293,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_140CDLMORNINGDOJISTAR(CYTHON_UNUSED Py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_143CDLMORNINGSTAR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_145CDLMATCHINGLOW(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_142CDLMORNINGSTAR, "CDLMORNINGSTAR(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\n\nCDLMORNINGSTAR(open, high, low, close[, penetration=?])\n\nMorning Star (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_143CDLMORNINGSTAR = {"CDLMORNINGSTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_143CDLMORNINGSTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_142CDLMORNINGSTAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_143CDLMORNINGSTAR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_144CDLMATCHINGLOW, "CDLMATCHINGLOW(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLMATCHINGLOW(open, high, low, close)\n\nMatching Low (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_145CDLMATCHINGLOW = {"CDLMATCHINGLOW", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_145CDLMATCHINGLOW, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_144CDLMATCHINGLOW}; +static PyObject *__pyx_pw_5talib_7_ta_lib_145CDLMATCHINGLOW(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -20779,18 +21313,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; - double __pyx_v_penetration; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLMORNINGSTAR (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLMATCHINGLOW (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -20800,86 +21333,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2154, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2153, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 2154, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2154, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2153, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2154, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2153, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2154, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2153, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2154, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2153, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLMORNINGSTAR", 0) < (0)) __PYX_ERR(4, 2154, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLMATCHINGLOW", 0) < (0)) __PYX_ERR(4, 2153, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLMORNINGSTAR", 0, 4, 5, i); __PYX_ERR(4, 2154, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLMATCHINGLOW", 1, 4, 4, i); __PYX_ERR(4, 2153, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 2154, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2154, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2154, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2154, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2154, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2153, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2153, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2153, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2153, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); __pyx_v_low = ((PyArrayObject *)values[2]); __pyx_v_close = ((PyArrayObject *)values[3]); - if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 2156, __pyx_L3_error) - } else { - __pyx_v_penetration = ((double)((double)0.3)); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLMORNINGSTAR", 0, 4, 5, __pyx_nargs); __PYX_ERR(4, 2154, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLMATCHINGLOW", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2153, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMATCHINGLOW", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2156, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2156, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2156, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2156, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_142CDLMORNINGSTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2155, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2155, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2155, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2155, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_144CDLMATCHINGLOW(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -20898,7 +21415,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_142CDLMORNINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { +static PyObject *__pyx_pf_5talib_7_ta_lib_144CDLMATCHINGLOW(CYTHON_UNUSED 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; @@ -20915,50 +21432,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_142CDLMORNINGSTAR(CYTHON_UNUSED PyObje int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLMORNINGSTAR", 0); + __Pyx_RefNannySetupContext("CDLMATCHINGLOW", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2175, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2172, __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(4, 2176, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2177, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2174, __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(4, 2178, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2175, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2179, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2176, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2180, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2177, __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_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(4, 2183, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2180, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLMATCHINGLOW(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGSTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2185, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATCHINGLOW, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2182, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -20971,7 +21488,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_142CDLMORNINGSTAR(CYTHON_UNUSED PyObje /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMATCHINGLOW", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -20986,16 +21503,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_142CDLMORNINGSTAR(CYTHON_UNUSED PyObje /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_145CDLONNECK(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_147CDLMATHOLD(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_144CDLONNECK, "CDLONNECK(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLONNECK(open, high, low, close)\n\nOn-Neck Pattern (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_145CDLONNECK = {"CDLONNECK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_145CDLONNECK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_144CDLONNECK}; -static PyObject *__pyx_pw_5talib_7_ta_lib_145CDLONNECK(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_146CDLMATHOLD, "CDLMATHOLD(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.5)\n\nCDLMATHOLD(open, high, low, close[, penetration=?])\n\nMat Hold (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nParameters:\n penetration: 0.5\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_147CDLMATHOLD = {"CDLMATHOLD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_147CDLMATHOLD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_146CDLMATHOLD}; +static PyObject *__pyx_pw_5talib_7_ta_lib_147CDLMATHOLD(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -21006,17 +21523,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; + double __pyx_v_penetration; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLONNECK (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLMATHOLD (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -21026,70 +21544,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2188, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2185, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 2185, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2188, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2185, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2188, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2185, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2188, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2185, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2188, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2185, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLONNECK", 0) < (0)) __PYX_ERR(4, 2188, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLMATHOLD", 0) < (0)) __PYX_ERR(4, 2185, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLONNECK", 1, 4, 4, i); __PYX_ERR(4, 2188, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLMATHOLD", 0, 4, 5, i); __PYX_ERR(4, 2185, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2188, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2188, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2188, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2188, __pyx_L3_error) + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 2185, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2185, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2185, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2185, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2185, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); __pyx_v_low = ((PyArrayObject *)values[2]); __pyx_v_close = ((PyArrayObject *)values[3]); + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 2187, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)((double)0.5)); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLONNECK", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2188, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLMATHOLD", 0, 4, 5, __pyx_nargs); __PYX_ERR(4, 2185, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLONNECK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMATHOLD", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2190, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2190, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2190, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2190, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_144CDLONNECK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2187, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2187, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2187, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2187, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_146CDLMATHOLD(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); /* function exit code */ goto __pyx_L0; @@ -21108,7 +21642,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_144CDLONNECK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_146CDLMATHOLD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -21125,50 +21659,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_144CDLONNECK(CYTHON_UNUSED PyObject *_ int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLONNECK", 0); + __Pyx_RefNannySetupContext("CDLMATHOLD", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2207, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2206, __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(4, 2208, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2207, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2209, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2208, __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(4, 2210, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2209, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2211, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2210, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2212, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2211, __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_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(4, 2215, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2214, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLMATHOLD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLONNECK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2217, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATHOLD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2216, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -21181,7 +21715,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_144CDLONNECK(CYTHON_UNUSED PyObject *_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLONNECK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMATHOLD", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -21196,16 +21730,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_144CDLONNECK(CYTHON_UNUSED PyObject *_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_147CDLPIERCING(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_149CDLMORNINGDOJISTAR(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_146CDLPIERCING, "CDLPIERCING(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLPIERCING(open, high, low, close)\n\nPiercing Pattern (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_147CDLPIERCING = {"CDLPIERCING", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_147CDLPIERCING, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_146CDLPIERCING}; -static PyObject *__pyx_pw_5talib_7_ta_lib_147CDLPIERCING(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_148CDLMORNINGDOJISTAR, "CDLMORNINGDOJISTAR(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\n\nCDLMORNINGDOJISTAR(open, high, low, close[, penetration=?])\n\nMorning Doji Star (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_149CDLMORNINGDOJISTAR = {"CDLMORNINGDOJISTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_149CDLMORNINGDOJISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_148CDLMORNINGDOJISTAR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_149CDLMORNINGDOJISTAR(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -21216,17 +21750,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; + double __pyx_v_penetration; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLPIERCING (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLMORNINGDOJISTAR (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -21236,70 +21771,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2220, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2219, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 2219, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2220, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2219, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2220, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2219, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2220, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2219, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2220, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2219, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLPIERCING", 0) < (0)) __PYX_ERR(4, 2220, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLMORNINGDOJISTAR", 0) < (0)) __PYX_ERR(4, 2219, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLPIERCING", 1, 4, 4, i); __PYX_ERR(4, 2220, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLMORNINGDOJISTAR", 0, 4, 5, i); __PYX_ERR(4, 2219, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2220, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2220, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2220, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2220, __pyx_L3_error) + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 2219, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2219, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2219, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2219, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2219, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); __pyx_v_low = ((PyArrayObject *)values[2]); __pyx_v_close = ((PyArrayObject *)values[3]); + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 2221, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)((double)0.3)); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLPIERCING", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2220, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLMORNINGDOJISTAR", 0, 4, 5, __pyx_nargs); __PYX_ERR(4, 2219, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLPIERCING", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2222, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2222, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2222, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2222, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_146CDLPIERCING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2221, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2221, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2221, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2221, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_148CDLMORNINGDOJISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); /* function exit code */ goto __pyx_L0; @@ -21318,7 +21869,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_146CDLPIERCING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_148CDLMORNINGDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -21335,50 +21886,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_146CDLPIERCING(CYTHON_UNUSED PyObject int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLPIERCING", 0); + __Pyx_RefNannySetupContext("CDLMORNINGDOJISTAR", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2239, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2240, __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(4, 2240, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2241, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2241, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2242, __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(4, 2242, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2243, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2244, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2244, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2245, __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_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(4, 2247, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2248, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLMORNINGDOJISTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLPIERCING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2249, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGDOJISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2250, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -21391,7 +21942,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_146CDLPIERCING(CYTHON_UNUSED PyObject /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLPIERCING", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -21406,16 +21957,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_146CDLPIERCING(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_149CDLRICKSHAWMAN(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_151CDLMORNINGSTAR(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_148CDLRICKSHAWMAN, "CDLRICKSHAWMAN(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLRICKSHAWMAN(open, high, low, close)\n\nRickshaw Man (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_149CDLRICKSHAWMAN = {"CDLRICKSHAWMAN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_149CDLRICKSHAWMAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_148CDLRICKSHAWMAN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_149CDLRICKSHAWMAN(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_150CDLMORNINGSTAR, "CDLMORNINGSTAR(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\n\nCDLMORNINGSTAR(open, high, low, close[, penetration=?])\n\nMorning Star (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_151CDLMORNINGSTAR = {"CDLMORNINGSTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_151CDLMORNINGSTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_150CDLMORNINGSTAR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_151CDLMORNINGSTAR(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -21426,17 +21977,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; + double __pyx_v_penetration; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLRICKSHAWMAN (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLMORNINGSTAR (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -21446,70 +21998,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2252, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2253, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 2253, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2252, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2253, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2252, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2253, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2252, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2253, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2252, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2253, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLRICKSHAWMAN", 0) < (0)) __PYX_ERR(4, 2252, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLMORNINGSTAR", 0) < (0)) __PYX_ERR(4, 2253, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLRICKSHAWMAN", 1, 4, 4, i); __PYX_ERR(4, 2252, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLMORNINGSTAR", 0, 4, 5, i); __PYX_ERR(4, 2253, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2252, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2252, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2252, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2252, __pyx_L3_error) + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 2253, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2253, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2253, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2253, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2253, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); __pyx_v_low = ((PyArrayObject *)values[2]); __pyx_v_close = ((PyArrayObject *)values[3]); + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 2255, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)((double)0.3)); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLRICKSHAWMAN", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2252, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLMORNINGSTAR", 0, 4, 5, __pyx_nargs); __PYX_ERR(4, 2253, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLRICKSHAWMAN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2254, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2254, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2254, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2254, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_148CDLRICKSHAWMAN(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2255, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2255, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2255, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2255, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_150CDLMORNINGSTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); /* function exit code */ goto __pyx_L0; @@ -21528,7 +22096,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_148CDLRICKSHAWMAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_150CDLMORNINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -21545,50 +22113,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_148CDLRICKSHAWMAN(CYTHON_UNUSED PyObje int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLRICKSHAWMAN", 0); + __Pyx_RefNannySetupContext("CDLMORNINGSTAR", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2271, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2274, __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(4, 2272, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2273, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2276, __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(4, 2274, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2277, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2275, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2278, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2276, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2279, __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_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(4, 2279, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2282, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLMORNINGSTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRICKSHAWMAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2281, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGSTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -21601,7 +22169,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_148CDLRICKSHAWMAN(CYTHON_UNUSED PyObje /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLRICKSHAWMAN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -21616,16 +22184,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_148CDLRICKSHAWMAN(CYTHON_UNUSED PyObje /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_151CDLRISEFALL3METHODS(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_153CDLONNECK(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_150CDLRISEFALL3METHODS, "CDLRISEFALL3METHODS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLRISEFALL3METHODS(open, high, low, close)\n\nRising/Falling Three Methods (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_151CDLRISEFALL3METHODS = {"CDLRISEFALL3METHODS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_151CDLRISEFALL3METHODS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_150CDLRISEFALL3METHODS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_151CDLRISEFALL3METHODS(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_152CDLONNECK, "CDLONNECK(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLONNECK(open, high, low, close)\n\nOn-Neck Pattern (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_153CDLONNECK = {"CDLONNECK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_153CDLONNECK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_152CDLONNECK}; +static PyObject *__pyx_pw_5talib_7_ta_lib_153CDLONNECK(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -21646,7 +22214,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLRISEFALL3METHODS (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLONNECK (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -21658,44 +22226,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2284, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2287, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2284, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2287, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2284, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2287, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2284, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2287, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2284, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2287, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLRISEFALL3METHODS", 0) < (0)) __PYX_ERR(4, 2284, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLONNECK", 0) < (0)) __PYX_ERR(4, 2287, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLRISEFALL3METHODS", 1, 4, 4, i); __PYX_ERR(4, 2284, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLONNECK", 1, 4, 4, i); __PYX_ERR(4, 2287, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2284, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2287, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2284, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2287, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2284, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2287, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2284, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2287, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -21704,22 +22272,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLRISEFALL3METHODS", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2284, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLONNECK", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2287, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLRISEFALL3METHODS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLONNECK", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2286, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2286, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2286, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2286, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_150CDLRISEFALL3METHODS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2289, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2289, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2289, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2289, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_152CDLONNECK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -21738,7 +22306,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_150CDLRISEFALL3METHODS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_152CDLONNECK(CYTHON_UNUSED 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; @@ -21755,50 +22323,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_150CDLRISEFALL3METHODS(CYTHON_UNUSED P int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLRISEFALL3METHODS", 0); + __Pyx_RefNannySetupContext("CDLONNECK", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2303, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2306, __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(4, 2304, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2307, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2305, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2308, __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(4, 2306, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2307, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2310, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2308, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2311, __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_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(4, 2311, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2314, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLONNECK(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRISEFALL3METHODS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2313, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLONNECK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2316, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -21811,7 +22379,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_150CDLRISEFALL3METHODS(CYTHON_UNUSED P /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLRISEFALL3METHODS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLONNECK", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -21826,16 +22394,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_150CDLRISEFALL3METHODS(CYTHON_UNUSED P /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_153CDLSEPARATINGLINES(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_155CDLPIERCING(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_152CDLSEPARATINGLINES, "CDLSEPARATINGLINES(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSEPARATINGLINES(open, high, low, close)\n\nSeparating Lines (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_153CDLSEPARATINGLINES = {"CDLSEPARATINGLINES", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_153CDLSEPARATINGLINES, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_152CDLSEPARATINGLINES}; -static PyObject *__pyx_pw_5talib_7_ta_lib_153CDLSEPARATINGLINES(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_154CDLPIERCING, "CDLPIERCING(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLPIERCING(open, high, low, close)\n\nPiercing Pattern (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_155CDLPIERCING = {"CDLPIERCING", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_155CDLPIERCING, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_154CDLPIERCING}; +static PyObject *__pyx_pw_5talib_7_ta_lib_155CDLPIERCING(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -21856,7 +22424,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLSEPARATINGLINES (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLPIERCING (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -21868,44 +22436,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2316, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2319, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2316, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2319, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2316, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2319, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2316, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2319, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2316, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2319, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLSEPARATINGLINES", 0) < (0)) __PYX_ERR(4, 2316, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLPIERCING", 0) < (0)) __PYX_ERR(4, 2319, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLSEPARATINGLINES", 1, 4, 4, i); __PYX_ERR(4, 2316, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLPIERCING", 1, 4, 4, i); __PYX_ERR(4, 2319, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2316, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2319, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2316, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2319, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2316, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2319, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2316, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2319, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -21914,22 +22482,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLSEPARATINGLINES", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2316, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLPIERCING", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2319, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLSEPARATINGLINES", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLPIERCING", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2318, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2318, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2318, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2318, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_152CDLSEPARATINGLINES(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2321, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2321, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2321, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2321, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_154CDLPIERCING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -21948,7 +22516,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_152CDLSEPARATINGLINES(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_154CDLPIERCING(CYTHON_UNUSED 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; @@ -21965,50 +22533,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_152CDLSEPARATINGLINES(CYTHON_UNUSED Py int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLSEPARATINGLINES", 0); + __Pyx_RefNannySetupContext("CDLPIERCING", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2335, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2338, __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(4, 2336, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2339, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2337, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2340, __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(4, 2338, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2341, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2339, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2342, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2340, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2343, __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_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(4, 2343, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2346, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLPIERCING(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSEPARATINGLINES, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2345, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLPIERCING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2348, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -22021,7 +22589,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_152CDLSEPARATINGLINES(CYTHON_UNUSED Py /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLSEPARATINGLINES", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLPIERCING", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -22036,16 +22604,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_152CDLSEPARATINGLINES(CYTHON_UNUSED Py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_155CDLSHOOTINGSTAR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_157CDLRICKSHAWMAN(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_154CDLSHOOTINGSTAR, "CDLSHOOTINGSTAR(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSHOOTINGSTAR(open, high, low, close)\n\nShooting Star (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_155CDLSHOOTINGSTAR = {"CDLSHOOTINGSTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_155CDLSHOOTINGSTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_154CDLSHOOTINGSTAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_155CDLSHOOTINGSTAR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_156CDLRICKSHAWMAN, "CDLRICKSHAWMAN(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLRICKSHAWMAN(open, high, low, close)\n\nRickshaw Man (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_157CDLRICKSHAWMAN = {"CDLRICKSHAWMAN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_157CDLRICKSHAWMAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_156CDLRICKSHAWMAN}; +static PyObject *__pyx_pw_5talib_7_ta_lib_157CDLRICKSHAWMAN(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -22066,7 +22634,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLSHOOTINGSTAR (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLRICKSHAWMAN (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -22078,44 +22646,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2348, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2351, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2348, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2351, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2348, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2351, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2348, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2351, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2348, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2351, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLSHOOTINGSTAR", 0) < (0)) __PYX_ERR(4, 2348, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLRICKSHAWMAN", 0) < (0)) __PYX_ERR(4, 2351, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLSHOOTINGSTAR", 1, 4, 4, i); __PYX_ERR(4, 2348, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLRICKSHAWMAN", 1, 4, 4, i); __PYX_ERR(4, 2351, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2348, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2351, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2348, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2351, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2348, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2351, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2348, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2351, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -22124,22 +22692,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLSHOOTINGSTAR", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2348, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLRICKSHAWMAN", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2351, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLSHOOTINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLRICKSHAWMAN", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2350, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2350, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2350, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2350, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_154CDLSHOOTINGSTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2353, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2353, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2353, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2353, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_156CDLRICKSHAWMAN(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -22158,7 +22726,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_154CDLSHOOTINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_156CDLRICKSHAWMAN(CYTHON_UNUSED 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; @@ -22175,50 +22743,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_154CDLSHOOTINGSTAR(CYTHON_UNUSED PyObj int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLSHOOTINGSTAR", 0); + __Pyx_RefNannySetupContext("CDLRICKSHAWMAN", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2367, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2370, __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(4, 2368, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2371, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2369, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2372, __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(4, 2370, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2373, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2371, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2374, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2372, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2375, __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_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(4, 2375, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2378, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLRICKSHAWMAN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHOOTINGSTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2377, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRICKSHAWMAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2380, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -22231,7 +22799,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_154CDLSHOOTINGSTAR(CYTHON_UNUSED PyObj /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLSHOOTINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLRICKSHAWMAN", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -22246,16 +22814,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_154CDLSHOOTINGSTAR(CYTHON_UNUSED PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_157CDLSHORTLINE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_159CDLRISEFALL3METHODS(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_156CDLSHORTLINE, "CDLSHORTLINE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSHORTLINE(open, high, low, close)\n\nShort Line Candle (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_157CDLSHORTLINE = {"CDLSHORTLINE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_157CDLSHORTLINE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_156CDLSHORTLINE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_157CDLSHORTLINE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_158CDLRISEFALL3METHODS, "CDLRISEFALL3METHODS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLRISEFALL3METHODS(open, high, low, close)\n\nRising/Falling Three Methods (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_159CDLRISEFALL3METHODS = {"CDLRISEFALL3METHODS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_159CDLRISEFALL3METHODS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_158CDLRISEFALL3METHODS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_159CDLRISEFALL3METHODS(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -22276,7 +22844,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLSHORTLINE (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLRISEFALL3METHODS (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -22288,44 +22856,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2380, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2383, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2380, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2383, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2380, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2383, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2380, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2383, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2380, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2383, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLSHORTLINE", 0) < (0)) __PYX_ERR(4, 2380, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLRISEFALL3METHODS", 0) < (0)) __PYX_ERR(4, 2383, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLSHORTLINE", 1, 4, 4, i); __PYX_ERR(4, 2380, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLRISEFALL3METHODS", 1, 4, 4, i); __PYX_ERR(4, 2383, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2380, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2383, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2380, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2383, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2380, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2383, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2380, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2383, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -22334,22 +22902,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLSHORTLINE", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2380, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLRISEFALL3METHODS", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2383, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLSHORTLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLRISEFALL3METHODS", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2382, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2382, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2382, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2382, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_156CDLSHORTLINE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2385, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2385, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2385, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2385, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_158CDLRISEFALL3METHODS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -22368,7 +22936,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_156CDLSHORTLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_158CDLRISEFALL3METHODS(CYTHON_UNUSED 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; @@ -22385,50 +22953,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_156CDLSHORTLINE(CYTHON_UNUSED PyObject int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLSHORTLINE", 0); + __Pyx_RefNannySetupContext("CDLRISEFALL3METHODS", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2399, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2402, __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(4, 2400, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2403, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2401, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2404, __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(4, 2402, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2405, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2403, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2406, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2404, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2407, __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_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(4, 2407, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2410, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLRISEFALL3METHODS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHORTLINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2409, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRISEFALL3METHODS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2412, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -22441,7 +23009,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_156CDLSHORTLINE(CYTHON_UNUSED PyObject /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLSHORTLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLRISEFALL3METHODS", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -22456,16 +23024,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_156CDLSHORTLINE(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_159CDLSPINNINGTOP(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_161CDLSEPARATINGLINES(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_158CDLSPINNINGTOP, "CDLSPINNINGTOP(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSPINNINGTOP(open, high, low, close)\n\nSpinning Top (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_159CDLSPINNINGTOP = {"CDLSPINNINGTOP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_159CDLSPINNINGTOP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_158CDLSPINNINGTOP}; -static PyObject *__pyx_pw_5talib_7_ta_lib_159CDLSPINNINGTOP(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_160CDLSEPARATINGLINES, "CDLSEPARATINGLINES(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSEPARATINGLINES(open, high, low, close)\n\nSeparating Lines (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_161CDLSEPARATINGLINES = {"CDLSEPARATINGLINES", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_161CDLSEPARATINGLINES, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_160CDLSEPARATINGLINES}; +static PyObject *__pyx_pw_5talib_7_ta_lib_161CDLSEPARATINGLINES(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -22486,7 +23054,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLSPINNINGTOP (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLSEPARATINGLINES (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -22498,44 +23066,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2412, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2415, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2412, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2415, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2412, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2415, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2412, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2415, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2412, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2415, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLSPINNINGTOP", 0) < (0)) __PYX_ERR(4, 2412, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLSEPARATINGLINES", 0) < (0)) __PYX_ERR(4, 2415, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLSPINNINGTOP", 1, 4, 4, i); __PYX_ERR(4, 2412, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLSEPARATINGLINES", 1, 4, 4, i); __PYX_ERR(4, 2415, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2412, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2415, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2412, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2415, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2412, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2415, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2412, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2415, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -22544,22 +23112,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLSPINNINGTOP", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2412, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLSEPARATINGLINES", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2415, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLSPINNINGTOP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSEPARATINGLINES", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2414, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2414, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2414, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2414, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_158CDLSPINNINGTOP(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2417, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2417, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2417, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2417, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_160CDLSEPARATINGLINES(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -22578,7 +23146,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_158CDLSPINNINGTOP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_160CDLSEPARATINGLINES(CYTHON_UNUSED 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; @@ -22595,50 +23163,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_158CDLSPINNINGTOP(CYTHON_UNUSED PyObje int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLSPINNINGTOP", 0); + __Pyx_RefNannySetupContext("CDLSEPARATINGLINES", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2431, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2434, __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(4, 2432, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2433, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2436, __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(4, 2434, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2437, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2435, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2438, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2436, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2439, __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_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(4, 2439, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2442, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLSEPARATINGLINES(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSPINNINGTOP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2441, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSEPARATINGLINES, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2444, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -22651,7 +23219,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_158CDLSPINNINGTOP(CYTHON_UNUSED PyObje /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLSPINNINGTOP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSEPARATINGLINES", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -22666,16 +23234,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_158CDLSPINNINGTOP(CYTHON_UNUSED PyObje /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_161CDLSTALLEDPATTERN(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_163CDLSHOOTINGSTAR(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_160CDLSTALLEDPATTERN, "CDLSTALLEDPATTERN(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSTALLEDPATTERN(open, high, low, close)\n\nStalled Pattern (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_161CDLSTALLEDPATTERN = {"CDLSTALLEDPATTERN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_161CDLSTALLEDPATTERN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_160CDLSTALLEDPATTERN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_161CDLSTALLEDPATTERN(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_162CDLSHOOTINGSTAR, "CDLSHOOTINGSTAR(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSHOOTINGSTAR(open, high, low, close)\n\nShooting Star (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_163CDLSHOOTINGSTAR = {"CDLSHOOTINGSTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_163CDLSHOOTINGSTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_162CDLSHOOTINGSTAR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_163CDLSHOOTINGSTAR(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -22696,7 +23264,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLSTALLEDPATTERN (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLSHOOTINGSTAR (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -22708,44 +23276,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2444, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2447, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2444, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2447, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2444, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2447, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2444, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2447, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2444, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2447, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLSTALLEDPATTERN", 0) < (0)) __PYX_ERR(4, 2444, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLSHOOTINGSTAR", 0) < (0)) __PYX_ERR(4, 2447, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLSTALLEDPATTERN", 1, 4, 4, i); __PYX_ERR(4, 2444, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLSHOOTINGSTAR", 1, 4, 4, i); __PYX_ERR(4, 2447, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2444, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2447, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2444, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2447, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2444, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2447, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2444, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2447, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -22754,22 +23322,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLSTALLEDPATTERN", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2444, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLSHOOTINGSTAR", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2447, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLSTALLEDPATTERN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSHOOTINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2446, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2446, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2446, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2446, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_160CDLSTALLEDPATTERN(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2449, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2449, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2449, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2449, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_162CDLSHOOTINGSTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -22788,7 +23356,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_160CDLSTALLEDPATTERN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_162CDLSHOOTINGSTAR(CYTHON_UNUSED 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; @@ -22805,50 +23373,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_160CDLSTALLEDPATTERN(CYTHON_UNUSED PyO int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLSTALLEDPATTERN", 0); + __Pyx_RefNannySetupContext("CDLSHOOTINGSTAR", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2463, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2466, __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(4, 2464, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2467, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2465, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2468, __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(4, 2466, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2469, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2467, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2470, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2468, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2471, __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_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(4, 2471, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2474, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLSHOOTINGSTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTALLEDPATTERN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2473, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHOOTINGSTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2476, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -22861,7 +23429,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_160CDLSTALLEDPATTERN(CYTHON_UNUSED PyO /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLSTALLEDPATTERN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSHOOTINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -22876,16 +23444,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_160CDLSTALLEDPATTERN(CYTHON_UNUSED PyO /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_163CDLSTICKSANDWICH(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_165CDLSHORTLINE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_162CDLSTICKSANDWICH, "CDLSTICKSANDWICH(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSTICKSANDWICH(open, high, low, close)\n\nStick Sandwich (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_163CDLSTICKSANDWICH = {"CDLSTICKSANDWICH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_163CDLSTICKSANDWICH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_162CDLSTICKSANDWICH}; -static PyObject *__pyx_pw_5talib_7_ta_lib_163CDLSTICKSANDWICH(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_164CDLSHORTLINE, "CDLSHORTLINE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSHORTLINE(open, high, low, close)\n\nShort Line Candle (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_165CDLSHORTLINE = {"CDLSHORTLINE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_165CDLSHORTLINE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_164CDLSHORTLINE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_165CDLSHORTLINE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -22906,7 +23474,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLSTICKSANDWICH (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLSHORTLINE (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -22918,44 +23486,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2476, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2479, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2476, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2479, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2476, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2479, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2476, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2479, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2476, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2479, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLSTICKSANDWICH", 0) < (0)) __PYX_ERR(4, 2476, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLSHORTLINE", 0) < (0)) __PYX_ERR(4, 2479, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLSTICKSANDWICH", 1, 4, 4, i); __PYX_ERR(4, 2476, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLSHORTLINE", 1, 4, 4, i); __PYX_ERR(4, 2479, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2476, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2479, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2476, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2479, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2476, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2479, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2476, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2479, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -22964,22 +23532,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLSTICKSANDWICH", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2476, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLSHORTLINE", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2479, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLSTICKSANDWICH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSHORTLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2478, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2478, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2478, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2478, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_162CDLSTICKSANDWICH(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2481, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2481, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2481, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2481, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_164CDLSHORTLINE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -22998,7 +23566,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_162CDLSTICKSANDWICH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_164CDLSHORTLINE(CYTHON_UNUSED 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; @@ -23015,50 +23583,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_162CDLSTICKSANDWICH(CYTHON_UNUSED PyOb int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLSTICKSANDWICH", 0); + __Pyx_RefNannySetupContext("CDLSHORTLINE", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2495, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2498, __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(4, 2496, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2499, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2497, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2500, __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(4, 2498, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2501, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2499, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2502, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2500, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2503, __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_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(4, 2503, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2506, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLSHORTLINE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTICKSANDWICH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2505, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHORTLINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2508, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -23071,7 +23639,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_162CDLSTICKSANDWICH(CYTHON_UNUSED PyOb /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLSTICKSANDWICH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSHORTLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -23086,16 +23654,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_162CDLSTICKSANDWICH(CYTHON_UNUSED PyOb /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_165CDLTAKURI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_167CDLSPINNINGTOP(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_164CDLTAKURI, "CDLTAKURI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLTAKURI(open, high, low, close)\n\nTakuri (Dragonfly Doji with very long lower shadow) (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_165CDLTAKURI = {"CDLTAKURI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_165CDLTAKURI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_164CDLTAKURI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_165CDLTAKURI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_166CDLSPINNINGTOP, "CDLSPINNINGTOP(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSPINNINGTOP(open, high, low, close)\n\nSpinning Top (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_167CDLSPINNINGTOP = {"CDLSPINNINGTOP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_167CDLSPINNINGTOP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_166CDLSPINNINGTOP}; +static PyObject *__pyx_pw_5talib_7_ta_lib_167CDLSPINNINGTOP(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -23116,7 +23684,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLTAKURI (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLSPINNINGTOP (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -23128,44 +23696,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2508, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2511, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2508, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2511, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2508, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2511, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2508, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2511, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2508, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2511, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLTAKURI", 0) < (0)) __PYX_ERR(4, 2508, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLSPINNINGTOP", 0) < (0)) __PYX_ERR(4, 2511, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLTAKURI", 1, 4, 4, i); __PYX_ERR(4, 2508, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLSPINNINGTOP", 1, 4, 4, i); __PYX_ERR(4, 2511, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2508, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2511, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2508, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2511, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2508, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2511, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2508, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2511, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -23174,22 +23742,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLTAKURI", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2508, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLSPINNINGTOP", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2511, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLTAKURI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSPINNINGTOP", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2510, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2510, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2510, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2510, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_164CDLTAKURI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2513, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2513, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2513, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2513, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_166CDLSPINNINGTOP(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -23208,7 +23776,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_164CDLTAKURI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_166CDLSPINNINGTOP(CYTHON_UNUSED 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; @@ -23225,50 +23793,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_164CDLTAKURI(CYTHON_UNUSED PyObject *_ int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLTAKURI", 0); + __Pyx_RefNannySetupContext("CDLSPINNINGTOP", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2527, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2530, __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(4, 2528, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2531, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2529, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2532, __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(4, 2530, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2533, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2531, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2534, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2532, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2535, __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_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(4, 2535, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2538, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLSPINNINGTOP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTAKURI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2537, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSPINNINGTOP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2540, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -23281,7 +23849,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_164CDLTAKURI(CYTHON_UNUSED PyObject *_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLTAKURI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSPINNINGTOP", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -23296,16 +23864,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_164CDLTAKURI(CYTHON_UNUSED PyObject *_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_167CDLTASUKIGAP(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_169CDLSTALLEDPATTERN(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_166CDLTASUKIGAP, "CDLTASUKIGAP(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLTASUKIGAP(open, high, low, close)\n\nTasuki Gap (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_167CDLTASUKIGAP = {"CDLTASUKIGAP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_167CDLTASUKIGAP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_166CDLTASUKIGAP}; -static PyObject *__pyx_pw_5talib_7_ta_lib_167CDLTASUKIGAP(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_168CDLSTALLEDPATTERN, "CDLSTALLEDPATTERN(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSTALLEDPATTERN(open, high, low, close)\n\nStalled Pattern (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_169CDLSTALLEDPATTERN = {"CDLSTALLEDPATTERN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_169CDLSTALLEDPATTERN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_168CDLSTALLEDPATTERN}; +static PyObject *__pyx_pw_5talib_7_ta_lib_169CDLSTALLEDPATTERN(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -23326,7 +23894,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLTASUKIGAP (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLSTALLEDPATTERN (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -23338,44 +23906,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2540, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2543, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2540, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2543, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2540, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2543, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2540, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2543, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2540, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2543, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLTASUKIGAP", 0) < (0)) __PYX_ERR(4, 2540, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLSTALLEDPATTERN", 0) < (0)) __PYX_ERR(4, 2543, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLTASUKIGAP", 1, 4, 4, i); __PYX_ERR(4, 2540, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLSTALLEDPATTERN", 1, 4, 4, i); __PYX_ERR(4, 2543, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2540, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2543, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2540, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2543, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2540, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2543, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2540, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2543, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -23384,22 +23952,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLTASUKIGAP", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2540, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLSTALLEDPATTERN", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2543, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLTASUKIGAP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSTALLEDPATTERN", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2542, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2542, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2542, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2542, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_166CDLTASUKIGAP(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2545, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2545, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2545, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2545, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_168CDLSTALLEDPATTERN(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -23418,7 +23986,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_166CDLTASUKIGAP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_168CDLSTALLEDPATTERN(CYTHON_UNUSED 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; @@ -23435,50 +24003,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_166CDLTASUKIGAP(CYTHON_UNUSED PyObject int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLTASUKIGAP", 0); + __Pyx_RefNannySetupContext("CDLSTALLEDPATTERN", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2559, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2562, __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(4, 2560, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2563, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2561, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2564, __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(4, 2562, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2565, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2563, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2566, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2564, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2567, __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_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(4, 2567, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2570, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLSTALLEDPATTERN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTASUKIGAP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2569, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTALLEDPATTERN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2572, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -23491,7 +24059,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_166CDLTASUKIGAP(CYTHON_UNUSED PyObject /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLTASUKIGAP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSTALLEDPATTERN", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -23506,16 +24074,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_166CDLTASUKIGAP(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_169CDLTHRUSTING(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_171CDLSTICKSANDWICH(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_168CDLTHRUSTING, "CDLTHRUSTING(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLTHRUSTING(open, high, low, close)\n\nThrusting Pattern (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_169CDLTHRUSTING = {"CDLTHRUSTING", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_169CDLTHRUSTING, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_168CDLTHRUSTING}; -static PyObject *__pyx_pw_5talib_7_ta_lib_169CDLTHRUSTING(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_170CDLSTICKSANDWICH, "CDLSTICKSANDWICH(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSTICKSANDWICH(open, high, low, close)\n\nStick Sandwich (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_171CDLSTICKSANDWICH = {"CDLSTICKSANDWICH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_171CDLSTICKSANDWICH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_170CDLSTICKSANDWICH}; +static PyObject *__pyx_pw_5talib_7_ta_lib_171CDLSTICKSANDWICH(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -23536,7 +24104,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLTHRUSTING (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLSTICKSANDWICH (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -23548,44 +24116,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2572, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2575, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2572, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2575, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2572, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2575, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2572, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2575, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2572, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2575, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLTHRUSTING", 0) < (0)) __PYX_ERR(4, 2572, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLSTICKSANDWICH", 0) < (0)) __PYX_ERR(4, 2575, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLTHRUSTING", 1, 4, 4, i); __PYX_ERR(4, 2572, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLSTICKSANDWICH", 1, 4, 4, i); __PYX_ERR(4, 2575, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2572, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2575, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2572, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2575, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2572, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2575, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2572, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2575, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -23594,22 +24162,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLTHRUSTING", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2572, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLSTICKSANDWICH", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2575, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLTHRUSTING", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSTICKSANDWICH", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2574, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2574, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2574, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2574, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_168CDLTHRUSTING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2577, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2577, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2577, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2577, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_170CDLSTICKSANDWICH(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -23628,7 +24196,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_168CDLTHRUSTING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_170CDLSTICKSANDWICH(CYTHON_UNUSED 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; @@ -23645,50 +24213,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_168CDLTHRUSTING(CYTHON_UNUSED PyObject int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLTHRUSTING", 0); + __Pyx_RefNannySetupContext("CDLSTICKSANDWICH", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2591, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2594, __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(4, 2592, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2595, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2593, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2596, __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(4, 2594, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2597, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2595, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2598, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2596, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2599, __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_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(4, 2599, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2602, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLSTICKSANDWICH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTHRUSTING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2601, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTICKSANDWICH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2604, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -23701,7 +24269,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_168CDLTHRUSTING(CYTHON_UNUSED PyObject /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLTHRUSTING", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSTICKSANDWICH", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -23716,16 +24284,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_168CDLTHRUSTING(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_171CDLTRISTAR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_173CDLTAKURI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_170CDLTRISTAR, "CDLTRISTAR(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLTRISTAR(open, high, low, close)\n\nTristar Pattern (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_171CDLTRISTAR = {"CDLTRISTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_171CDLTRISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_170CDLTRISTAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_171CDLTRISTAR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_172CDLTAKURI, "CDLTAKURI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLTAKURI(open, high, low, close)\n\nTakuri (Dragonfly Doji with very long lower shadow) (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_173CDLTAKURI = {"CDLTAKURI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_173CDLTAKURI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_172CDLTAKURI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_173CDLTAKURI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -23746,7 +24314,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLTRISTAR (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLTAKURI (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -23758,44 +24326,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2604, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2607, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2604, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2607, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2604, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2607, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2604, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2607, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2604, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2607, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLTRISTAR", 0) < (0)) __PYX_ERR(4, 2604, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLTAKURI", 0) < (0)) __PYX_ERR(4, 2607, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLTRISTAR", 1, 4, 4, i); __PYX_ERR(4, 2604, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLTAKURI", 1, 4, 4, i); __PYX_ERR(4, 2607, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2604, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2607, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2604, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2607, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2604, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2607, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2604, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2607, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -23804,22 +24372,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLTRISTAR", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2604, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLTAKURI", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2607, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLTRISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLTAKURI", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2606, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2606, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2606, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2606, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_170CDLTRISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2609, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2609, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2609, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2609, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_172CDLTAKURI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -23838,7 +24406,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_170CDLTRISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_172CDLTAKURI(CYTHON_UNUSED 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; @@ -23855,50 +24423,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_170CDLTRISTAR(CYTHON_UNUSED PyObject * int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLTRISTAR", 0); + __Pyx_RefNannySetupContext("CDLTAKURI", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2623, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2626, __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(4, 2624, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2627, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2625, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2628, __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(4, 2626, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2629, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2627, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2630, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2628, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2631, __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_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(4, 2631, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2634, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLTAKURI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTRISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2633, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTAKURI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2636, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -23911,7 +24479,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_170CDLTRISTAR(CYTHON_UNUSED PyObject * /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLTRISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLTAKURI", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -23926,16 +24494,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_170CDLTRISTAR(CYTHON_UNUSED PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_173CDLUNIQUE3RIVER(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_175CDLTASUKIGAP(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_172CDLUNIQUE3RIVER, "CDLUNIQUE3RIVER(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLUNIQUE3RIVER(open, high, low, close)\n\nUnique 3 River (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_173CDLUNIQUE3RIVER = {"CDLUNIQUE3RIVER", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_173CDLUNIQUE3RIVER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_172CDLUNIQUE3RIVER}; -static PyObject *__pyx_pw_5talib_7_ta_lib_173CDLUNIQUE3RIVER(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_174CDLTASUKIGAP, "CDLTASUKIGAP(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLTASUKIGAP(open, high, low, close)\n\nTasuki Gap (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_175CDLTASUKIGAP = {"CDLTASUKIGAP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_175CDLTASUKIGAP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_174CDLTASUKIGAP}; +static PyObject *__pyx_pw_5talib_7_ta_lib_175CDLTASUKIGAP(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -23956,7 +24524,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLUNIQUE3RIVER (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLTASUKIGAP (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -23968,44 +24536,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2636, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2639, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2636, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2639, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2636, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2639, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2636, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2639, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2636, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2639, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLUNIQUE3RIVER", 0) < (0)) __PYX_ERR(4, 2636, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLTASUKIGAP", 0) < (0)) __PYX_ERR(4, 2639, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLUNIQUE3RIVER", 1, 4, 4, i); __PYX_ERR(4, 2636, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLTASUKIGAP", 1, 4, 4, i); __PYX_ERR(4, 2639, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2636, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2639, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2636, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2639, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2636, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2639, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2636, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2639, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -24014,22 +24582,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLUNIQUE3RIVER", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2636, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLTASUKIGAP", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2639, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLUNIQUE3RIVER", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLTASUKIGAP", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2638, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2638, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2638, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2638, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_172CDLUNIQUE3RIVER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2641, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2641, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2641, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2641, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_174CDLTASUKIGAP(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -24048,7 +24616,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_172CDLUNIQUE3RIVER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_174CDLTASUKIGAP(CYTHON_UNUSED 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; @@ -24065,50 +24633,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_172CDLUNIQUE3RIVER(CYTHON_UNUSED PyObj int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLUNIQUE3RIVER", 0); + __Pyx_RefNannySetupContext("CDLTASUKIGAP", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2655, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2658, __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(4, 2656, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2659, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2657, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2660, __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(4, 2658, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2661, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2659, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2662, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2660, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2663, __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_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(4, 2663, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2666, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLTASUKIGAP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUNIQUE3RIVER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2665, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTASUKIGAP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2668, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -24121,7 +24689,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_172CDLUNIQUE3RIVER(CYTHON_UNUSED PyObj /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLUNIQUE3RIVER", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLTASUKIGAP", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -24136,16 +24704,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_172CDLUNIQUE3RIVER(CYTHON_UNUSED PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_175CDLUPSIDEGAP2CROWS(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_177CDLTHRUSTING(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_174CDLUPSIDEGAP2CROWS, "CDLUPSIDEGAP2CROWS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLUPSIDEGAP2CROWS(open, high, low, close)\n\nUpside Gap Two Crows (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_175CDLUPSIDEGAP2CROWS = {"CDLUPSIDEGAP2CROWS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_175CDLUPSIDEGAP2CROWS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_174CDLUPSIDEGAP2CROWS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_175CDLUPSIDEGAP2CROWS(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_176CDLTHRUSTING, "CDLTHRUSTING(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLTHRUSTING(open, high, low, close)\n\nThrusting Pattern (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_177CDLTHRUSTING = {"CDLTHRUSTING", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_177CDLTHRUSTING, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_176CDLTHRUSTING}; +static PyObject *__pyx_pw_5talib_7_ta_lib_177CDLTHRUSTING(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -24166,7 +24734,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLUPSIDEGAP2CROWS (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLTHRUSTING (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -24178,44 +24746,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2668, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2671, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2668, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2671, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2668, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2671, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2668, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2671, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2668, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2671, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLUPSIDEGAP2CROWS", 0) < (0)) __PYX_ERR(4, 2668, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLTHRUSTING", 0) < (0)) __PYX_ERR(4, 2671, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLUPSIDEGAP2CROWS", 1, 4, 4, i); __PYX_ERR(4, 2668, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLTHRUSTING", 1, 4, 4, i); __PYX_ERR(4, 2671, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2668, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2671, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2668, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2671, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2668, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2671, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2668, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2671, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -24224,22 +24792,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLUPSIDEGAP2CROWS", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2668, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLTHRUSTING", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2671, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLUPSIDEGAP2CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLTHRUSTING", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2670, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2670, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2670, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2670, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_174CDLUPSIDEGAP2CROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2673, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2673, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2673, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2673, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_176CDLTHRUSTING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -24258,7 +24826,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_174CDLUPSIDEGAP2CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_176CDLTHRUSTING(CYTHON_UNUSED 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; @@ -24275,50 +24843,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_174CDLUPSIDEGAP2CROWS(CYTHON_UNUSED Py int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLUPSIDEGAP2CROWS", 0); + __Pyx_RefNannySetupContext("CDLTHRUSTING", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2687, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2690, __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(4, 2688, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2691, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2689, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2692, __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(4, 2690, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2693, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2691, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2694, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2692, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2695, __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_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(4, 2695, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2698, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLTHRUSTING(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUPSIDEGAP2CROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2697, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTHRUSTING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2700, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -24331,7 +24899,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_174CDLUPSIDEGAP2CROWS(CYTHON_UNUSED Py /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLUPSIDEGAP2CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLTHRUSTING", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -24346,16 +24914,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_174CDLUPSIDEGAP2CROWS(CYTHON_UNUSED Py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_177CDLXSIDEGAP3METHODS(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_179CDLTRISTAR(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_176CDLXSIDEGAP3METHODS, "CDLXSIDEGAP3METHODS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLXSIDEGAP3METHODS(open, high, low, close)\n\nUpside/Downside Gap Three Methods (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_177CDLXSIDEGAP3METHODS = {"CDLXSIDEGAP3METHODS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_177CDLXSIDEGAP3METHODS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_176CDLXSIDEGAP3METHODS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_177CDLXSIDEGAP3METHODS(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_178CDLTRISTAR, "CDLTRISTAR(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLTRISTAR(open, high, low, close)\n\nTristar Pattern (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_179CDLTRISTAR = {"CDLTRISTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_179CDLTRISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_178CDLTRISTAR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_179CDLTRISTAR(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -24376,7 +24944,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLXSIDEGAP3METHODS (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLTRISTAR (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -24388,44 +24956,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2700, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2703, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2700, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2703, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2700, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2703, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2700, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2703, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2700, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2703, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLXSIDEGAP3METHODS", 0) < (0)) __PYX_ERR(4, 2700, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLTRISTAR", 0) < (0)) __PYX_ERR(4, 2703, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLXSIDEGAP3METHODS", 1, 4, 4, i); __PYX_ERR(4, 2700, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLTRISTAR", 1, 4, 4, i); __PYX_ERR(4, 2703, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2700, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2703, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2700, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2703, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2700, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2703, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2700, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2703, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -24434,22 +25002,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLXSIDEGAP3METHODS", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2700, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLTRISTAR", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2703, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLXSIDEGAP3METHODS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLTRISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2702, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2702, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2702, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2702, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_176CDLXSIDEGAP3METHODS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2705, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2705, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2705, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2705, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_178CDLTRISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -24468,7 +25036,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_176CDLXSIDEGAP3METHODS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_178CDLTRISTAR(CYTHON_UNUSED 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; @@ -24485,50 +25053,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_176CDLXSIDEGAP3METHODS(CYTHON_UNUSED P int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLXSIDEGAP3METHODS", 0); + __Pyx_RefNannySetupContext("CDLTRISTAR", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2719, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2722, __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(4, 2720, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2723, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2721, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2724, __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(4, 2722, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2725, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2723, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2726, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2724, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2727, __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_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(4, 2727, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2730, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLTRISTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLXSIDEGAP3METHODS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2729, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTRISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2732, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -24541,7 +25109,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_176CDLXSIDEGAP3METHODS(CYTHON_UNUSED P /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLXSIDEGAP3METHODS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLTRISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); @@ -24556,34 +25124,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_176CDLXSIDEGAP3METHODS(CYTHON_UNUSED P /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_179CEIL(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_181CDLUNIQUE3RIVER(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_178CEIL, "CEIL(ndarray real)\n\nCEIL(real)\n\nVector Ceil (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_179CEIL = {"CEIL", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_179CEIL, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_178CEIL}; -static PyObject *__pyx_pw_5talib_7_ta_lib_179CEIL(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_180CDLUNIQUE3RIVER, "CDLUNIQUE3RIVER(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLUNIQUE3RIVER(open, high, low, close)\n\nUnique 3 River (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_181CDLUNIQUE3RIVER = {"CDLUNIQUE3RIVER", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_181CDLUNIQUE3RIVER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_180CDLUNIQUE3RIVER}; +static PyObject *__pyx_pw_5talib_7_ta_lib_181CDLUNIQUE3RIVER(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CEIL (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLUNIQUE3RIVER (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -24593,46 +25164,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2732, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2735, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2735, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2735, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2735, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2732, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2735, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CEIL", 0) < (0)) __PYX_ERR(4, 2732, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CEIL", 1, 1, 1, i); __PYX_ERR(4, 2732, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLUNIQUE3RIVER", 0) < (0)) __PYX_ERR(4, 2735, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLUNIQUE3RIVER", 1, 4, 4, i); __PYX_ERR(4, 2735, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2732, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2735, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2735, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2735, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2735, __pyx_L3_error) } - __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CEIL", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 2732, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLUNIQUE3RIVER", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2735, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CEIL", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLUNIQUE3RIVER", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 2734, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_178CEIL(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2737, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2737, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2737, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2737, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_180CDLUNIQUE3RIVER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -24651,7 +25246,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_178CEIL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_180CDLUNIQUE3RIVER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -24659,56 +25254,79 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_178CEIL(CYTHON_UNUSED PyObject *__pyx_ TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outinteger = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + 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("CEIL", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("CDLUNIQUE3RIVER", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2751, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2754, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2755, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2753, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2756, __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(4, 2757, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2758, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2759, __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_CEIL_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLUNIQUE3RIVER_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(4, 2756, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2762, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CEIL(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLUNIQUE3RIVER(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CEIL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2758, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUNIQUE3RIVER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2764, __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); + __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.CEIL", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLUNIQUE3RIVER", __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_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; @@ -24716,35 +25334,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_178CEIL(CYTHON_UNUSED PyObject *__pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_181CMO(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_183CDLUPSIDEGAP2CROWS(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_180CMO, "CMO(ndarray real, int timeperiod=-0x80000000)\n\nCMO(real[, timeperiod=?])\n\nChande Momentum Oscillator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_181CMO = {"CMO", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_181CMO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_180CMO}; -static PyObject *__pyx_pw_5talib_7_ta_lib_181CMO(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_182CDLUPSIDEGAP2CROWS, "CDLUPSIDEGAP2CROWS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLUPSIDEGAP2CROWS(open, high, low, close)\n\nUpside Gap Two Crows (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_183CDLUPSIDEGAP2CROWS = {"CDLUPSIDEGAP2CROWS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_183CDLUPSIDEGAP2CROWS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_182CDLUPSIDEGAP2CROWS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_183CDLUPSIDEGAP2CROWS(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CMO (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLUPSIDEGAP2CROWS (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -24754,62 +25374,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2761, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2767, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2767, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2767, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2761, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2767, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2761, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2767, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CMO", 0) < (0)) __PYX_ERR(4, 2761, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CMO", 0, 1, 2, i); __PYX_ERR(4, 2761, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2761, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2761, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLUPSIDEGAP2CROWS", 0) < (0)) __PYX_ERR(4, 2767, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLUPSIDEGAP2CROWS", 1, 4, 4, i); __PYX_ERR(4, 2767, __pyx_L3_error) } } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2763, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2767, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2767, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2767, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2767, __pyx_L3_error) } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CMO", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 2761, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLUPSIDEGAP2CROWS", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2767, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CMO", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLUPSIDEGAP2CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 2763, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_180CMO(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2769, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2769, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2769, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2769, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_182CDLUPSIDEGAP2CROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -24828,7 +25456,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_180CMO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_182CDLUPSIDEGAP2CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -24836,56 +25464,79 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_180CMO(CYTHON_UNUSED PyObject *__pyx_s TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outinteger = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + 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("CMO", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __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_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2782, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2786, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2787, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2784, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2788, __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(4, 2789, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2790, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2791, __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_CMO_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLUPSIDEGAP2CROWS_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(4, 2787, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2794, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CMO(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLUPSIDEGAP2CROWS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2789, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUPSIDEGAP2CROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2796, __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); + __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.CMO", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLUPSIDEGAP2CROWS", __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_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; @@ -24893,36 +25544,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_180CMO(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_183CORREL(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_185CDLXSIDEGAP3METHODS(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_182CORREL, "CORREL(ndarray real0, ndarray real1, int timeperiod=-0x80000000)\n\nCORREL(real0, real1[, timeperiod=?])\n\nPearson's Correlation Coefficient (r) (Statistic Functions)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_183CORREL = {"CORREL", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_183CORREL, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_182CORREL}; -static PyObject *__pyx_pw_5talib_7_ta_lib_183CORREL(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_184CDLXSIDEGAP3METHODS, "CDLXSIDEGAP3METHODS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLXSIDEGAP3METHODS(open, high, low, close)\n\nUpside/Downside Gap Three Methods (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_185CDLXSIDEGAP3METHODS = {"CDLXSIDEGAP3METHODS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_185CDLXSIDEGAP3METHODS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_184CDLXSIDEGAP3METHODS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_185CDLXSIDEGAP3METHODS(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real0 = 0; - PyArrayObject *__pyx_v_real1 = 0; - int __pyx_v_timeperiod; + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CORREL (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLXSIDEGAP3METHODS (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -24932,70 +25584,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2792, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2799, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2799, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2792, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2799, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2792, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2799, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2792, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2799, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CORREL", 0) < (0)) __PYX_ERR(4, 2792, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CORREL", 0, 2, 3, i); __PYX_ERR(4, 2792, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2792, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2792, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2792, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLXSIDEGAP3METHODS", 0) < (0)) __PYX_ERR(4, 2799, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLXSIDEGAP3METHODS", 1, 4, 4, i); __PYX_ERR(4, 2799, __pyx_L3_error) } } - } - __pyx_v_real0 = ((PyArrayObject *)values[0]); - __pyx_v_real1 = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2794, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2799, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2799, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2799, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2799, __pyx_L3_error) } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CORREL", 0, 2, 3, __pyx_nargs); __PYX_ERR(4, 2792, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLXSIDEGAP3METHODS", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2799, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CORREL", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLXSIDEGAP3METHODS", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(4, 2794, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(4, 2794, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_182CORREL(__pyx_self, __pyx_v_real0, __pyx_v_real1, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2801, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2801, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2801, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2801, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_184CDLXSIDEGAP3METHODS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -25014,7 +25666,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_182CORREL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_184CDLXSIDEGAP3METHODS(CYTHON_UNUSED 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; @@ -25022,7 +25674,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_182CORREL(CYTHON_UNUSED PyObject *__py TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outinteger = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -25031,56 +25683,70 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_182CORREL(CYTHON_UNUSED PyObject *__py int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CORREL", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real0); - __Pyx_INCREF((PyObject *)__pyx_v_real1); + __Pyx_RefNannySetupContext("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_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2814, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2818, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2815, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2819, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2820, __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_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2816, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2821, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2822, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2817, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2823, __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_v_lookback = (__pyx_v_begidx + TA_CDLXSIDEGAP3METHODS_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(4, 2820, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2826, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CORREL(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLXSIDEGAP3METHODS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CORREL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2822, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLXSIDEGAP3METHODS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2828, __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); + __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.CORREL", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLXSIDEGAP3METHODS", __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_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; @@ -25088,16 +25754,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_182CORREL(CYTHON_UNUSED PyObject *__py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_185COS(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_187CEIL(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_184COS, "COS(ndarray real)\n\nCOS(real)\n\nVector Trigonometric Cos (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_185COS = {"COS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_185COS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_184COS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_185COS(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_186CEIL, "CEIL(ndarray real)\n\nCEIL(real)\n\nVector Ceil (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_187CEIL = {"CEIL", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_187CEIL, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_186CEIL}; +static PyObject *__pyx_pw_5talib_7_ta_lib_187CEIL(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -25115,7 +25781,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("COS (wrapper)", 0); + __Pyx_RefNannySetupContext("CEIL (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -25127,44 +25793,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2825, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2831, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2825, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2831, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "COS", 0) < (0)) __PYX_ERR(4, 2825, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CEIL", 0) < (0)) __PYX_ERR(4, 2831, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("COS", 1, 1, 1, i); __PYX_ERR(4, 2825, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CEIL", 1, 1, 1, i); __PYX_ERR(4, 2831, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2825, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2831, __pyx_L3_error) } __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("COS", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 2825, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CEIL", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 2831, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.COS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CEIL", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 2827, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_184COS(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 2833, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_186CEIL(__pyx_self, __pyx_v_real); /* function exit code */ goto __pyx_L0; @@ -25183,7 +25849,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_184COS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_186CEIL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -25199,31 +25865,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_184COS(CYTHON_UNUSED PyObject *__pyx_s int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("COS", 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(4, 2844, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2850, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2846, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2852, __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_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(4, 2849, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2855, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CEIL(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2851, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CEIL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2857, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -25236,7 +25902,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_184COS(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.COS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CEIL", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -25248,34 +25914,38 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_184COS(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_187COSH(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_189CMF(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_186COSH, "COSH(ndarray real)\n\nCOSH(real)\n\nVector Trigonometric Cosh (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_187COSH = {"COSH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_187COSH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_186COSH}; -static PyObject *__pyx_pw_5talib_7_ta_lib_187COSH(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_188CMF, "CMF(ndarray high, ndarray low, ndarray close, ndarray volume, int timeperiod=-0x80000000)\n\nCMF(high, low, close, volume[, timeperiod=?])\n\nChaikin Money Flow (Volume Indicators)\n\nInputs:\n prices: ['high', 'low', 'close', 'volume']\nParameters:\n timeperiod: 20\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_189CMF = {"CMF", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_189CMF, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_188CMF}; +static PyObject *__pyx_pw_5talib_7_ta_lib_189CMF(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + PyArrayObject *__pyx_v_volume = 0; + int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("COSH (wrapper)", 0); + __Pyx_RefNannySetupContext("CMF (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -25285,46 +25955,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2854, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2860, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 2860, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2860, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2860, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2860, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2854, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2860, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "COSH", 0) < (0)) __PYX_ERR(4, 2854, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("COSH", 1, 1, 1, i); __PYX_ERR(4, 2854, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CMF", 0) < (0)) __PYX_ERR(4, 2860, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CMF", 0, 4, 5, i); __PYX_ERR(4, 2860, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2854, __pyx_L3_error) + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 2860, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2860, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2860, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2860, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2860, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + __pyx_v_volume = ((PyArrayObject *)values[3]); + if (values[4]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2862, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("COSH", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 2854, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CMF", 0, 4, 5, __pyx_nargs); __PYX_ERR(4, 2860, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.COSH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CMF", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 2856, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_186COSH(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2862, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2862, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2862, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(4, 2862, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_188CMF(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -25343,7 +26053,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_186COSH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_188CMF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -25355,35 +26065,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_186COSH(CYTHON_UNUSED PyObject *__pyx_ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + 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("COSH", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("CMF", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_INCREF((PyObject *)__pyx_v_volume); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2873, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2881, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2882, __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_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2875, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2883, __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(4, 2884, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2885, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2886, __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_COSH_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CMF_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(4, 2878, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2889, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CMF(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COSH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2880, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMF, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2891, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -25396,11 +26126,14 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_186COSH(CYTHON_UNUSED PyObject *__pyx_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.COSH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CMF", __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_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; @@ -25408,16 +26141,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_186COSH(CYTHON_UNUSED PyObject *__pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_189DEMA(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_191CMO(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_188DEMA, "DEMA(ndarray real, int timeperiod=-0x80000000)\n\nDEMA(real[, timeperiod=?])\n\nDouble Exponential Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_189DEMA = {"DEMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_189DEMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_188DEMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_189DEMA(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_190CMO, "CMO(ndarray real, int timeperiod=-0x80000000)\n\nCMO(real[, timeperiod=?])\n\nChande Momentum Oscillator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_191CMO = {"CMO", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_191CMO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_190CMO}; +static PyObject *__pyx_pw_5talib_7_ta_lib_191CMO(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -25436,7 +26169,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("DEMA (wrapper)", 0); + __Pyx_RefNannySetupContext("CMO (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -25448,60 +26181,60 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2883, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2894, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2883, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2894, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2883, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2894, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "DEMA", 0) < (0)) __PYX_ERR(4, 2883, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CMO", 0) < (0)) __PYX_ERR(4, 2894, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("DEMA", 0, 1, 2, i); __PYX_ERR(4, 2883, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CMO", 0, 1, 2, i); __PYX_ERR(4, 2894, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2883, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2894, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2883, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2894, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2885, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2896, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("DEMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 2883, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CMO", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 2894, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.DEMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 2885, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_188DEMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 2896, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_190CMO(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -25520,7 +26253,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_188DEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_190CMO(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; @@ -25536,31 +26269,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_188DEMA(CYTHON_UNUSED PyObject *__pyx_ int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("DEMA", 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(4, 2904, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2915, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2906, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2917, __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_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(4, 2909, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2920, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CMO(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DEMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2911, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2922, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -25573,7 +26306,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_188DEMA(CYTHON_UNUSED PyObject *__pyx_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.DEMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CMO", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -25585,24 +26318,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_188DEMA(CYTHON_UNUSED PyObject *__pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_191DIV(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_193CMOU(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_190DIV, "DIV(ndarray real0, ndarray real1)\n\nDIV(real0, real1)\n\nVector Arithmetic Div (Math Operators)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_191DIV = {"DIV", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_191DIV, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_190DIV}; -static PyObject *__pyx_pw_5talib_7_ta_lib_191DIV(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_192CMOU, "CMOU(ndarray real, int timeperiod=-0x80000000)\n\nCMOU(real[, timeperiod=?])\n\nChande Momentum Oscillator (Unsmoothed) (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_193CMOU = {"CMOU", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_193CMOU, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_192CMOU}; +static PyObject *__pyx_pw_5talib_7_ta_lib_193CMOU(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real0 = 0; - PyArrayObject *__pyx_v_real1 = 0; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -25613,7 +26346,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("DIV (wrapper)", 0); + __Pyx_RefNannySetupContext("CMOU (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -25623,54 +26356,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2914, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2925, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2914, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2925, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2914, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2925, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "DIV", 0) < (0)) __PYX_ERR(4, 2914, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("DIV", 1, 2, 2, i); __PYX_ERR(4, 2914, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CMOU", 0) < (0)) __PYX_ERR(4, 2925, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CMOU", 0, 1, 2, i); __PYX_ERR(4, 2925, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2914, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2914, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2925, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2925, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2927, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_real0 = ((PyArrayObject *)values[0]); - __pyx_v_real1 = ((PyArrayObject *)values[1]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("DIV", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 2914, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CMOU", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 2925, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.DIV", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CMOU", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(4, 2916, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(4, 2916, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_190DIV(__pyx_self, __pyx_v_real0, __pyx_v_real1); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 2927, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_192CMOU(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -25689,7 +26430,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_190DIV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1) { +static PyObject *__pyx_pf_5talib_7_ta_lib_192CMOU(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; @@ -25701,43 +26442,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_190DIV(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + npy_int __pyx_t_2; 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(4, 2934, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("CMOU", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2935, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2946, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2936, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2937, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2948, __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_DIV_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CMOU_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(4, 2940, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2951, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CMOU(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DIV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2942, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMOU, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2953, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -25750,12 +26483,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_190DIV(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.DIV", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CMOU", __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_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -25763,26 +26495,26 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_190DIV(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_193DX(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_195COPPOCK(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_192DX, "DX(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nDX(high, low, close[, timeperiod=?])\n\nDirectional Movement Index (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_193DX = {"DX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_193DX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_192DX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_193DX(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_194COPPOCK, "COPPOCK(ndarray real, int wmaperiod=-0x80000000, int roc1period=-0x80000000, int roc2period=-0x80000000)\n\nCOPPOCK(real[, wmaperiod=?, roc1period=?, roc2period=?])\n\nCoppock Curve (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n wmaperiod: 10\n roc1period: 11\n roc2period: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_195COPPOCK = {"COPPOCK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_195COPPOCK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_194COPPOCK}; +static PyObject *__pyx_pw_5talib_7_ta_lib_195COPPOCK(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_wmaperiod; + int __pyx_v_roc1period; + int __pyx_v_roc2period; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -25793,7 +26525,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("DX (wrapper)", 0); + __Pyx_RefNannySetupContext("COPPOCK (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -25803,78 +26535,88 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_wmaperiod,&__pyx_mstate_global->__pyx_n_u_roc1period,&__pyx_mstate_global->__pyx_n_u_roc2period,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2945, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2956, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2945, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2956, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2945, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2956, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2945, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2956, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2945, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2956, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "DX", 0) < (0)) __PYX_ERR(4, 2945, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("DX", 0, 3, 4, i); __PYX_ERR(4, 2945, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "COPPOCK", 0) < (0)) __PYX_ERR(4, 2956, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("COPPOCK", 0, 1, 4, i); __PYX_ERR(4, 2956, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2945, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2956, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2945, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2956, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2945, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2956, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2945, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2956, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_wmaperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_wmaperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2958, __pyx_L3_error) + } else { + __pyx_v_wmaperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_roc1period = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_roc1period == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2958, __pyx_L3_error) + } else { + __pyx_v_roc1period = ((int)((int)-2147483648)); + } if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2947, __pyx_L3_error) + __pyx_v_roc2period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_roc2period == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2958, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + __pyx_v_roc2period = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("DX", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 2945, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("COPPOCK", 0, 1, 4, __pyx_nargs); __PYX_ERR(4, 2956, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.DX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.COPPOCK", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2947, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2947, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2947, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_192DX(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 2958, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_194COPPOCK(__pyx_self, __pyx_v_real, __pyx_v_wmaperiod, __pyx_v_roc1period, __pyx_v_roc2period); /* function exit code */ goto __pyx_L0; @@ -25893,7 +26635,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_192DX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_194COPPOCK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_wmaperiod, int __pyx_v_roc1period, int __pyx_v_roc2period) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -25905,49 +26647,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_192DX(CYTHON_UNUSED PyObject *__pyx_se PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + npy_int __pyx_t_2; 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(4, 2966, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2967, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("COPPOCK", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2968, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2979, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2969, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2970, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2981, __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_DX_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_COPPOCK_Lookback(__pyx_v_wmaperiod, __pyx_v_roc1period, __pyx_v_roc2period)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2973, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2984, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_COPPOCK(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_wmaperiod, __pyx_v_roc1period, __pyx_v_roc2period, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2975, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COPPOCK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2986, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -25960,13 +26688,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_192DX(CYTHON_UNUSED PyObject *__pyx_se /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.DX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.COPPOCK", __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_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -25974,35 +26700,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_192DX(CYTHON_UNUSED PyObject *__pyx_se /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_195EMA(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_197CORREL(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_194EMA, "EMA(ndarray real, int timeperiod=-0x80000000)\n\nEMA(real[, timeperiod=?])\n\nExponential Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_195EMA = {"EMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_195EMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_194EMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_195EMA(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_196CORREL, "CORREL(ndarray real0, ndarray real1, int timeperiod=-0x80000000)\n\nCORREL(real0, real1[, timeperiod=?])\n\nPearson's Correlation Coefficient (r) (Statistic Functions)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_197CORREL = {"CORREL", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_197CORREL, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_196CORREL}; +static PyObject *__pyx_pw_5talib_7_ta_lib_197CORREL(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_real0 = 0; + PyArrayObject *__pyx_v_real1 = 0; int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("EMA (wrapper)", 0); + __Pyx_RefNannySetupContext("CORREL (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -26012,62 +26739,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2978, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2989, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2989, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2978, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2989, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2978, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2989, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "EMA", 0) < (0)) __PYX_ERR(4, 2978, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("EMA", 0, 1, 2, i); __PYX_ERR(4, 2978, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CORREL", 0) < (0)) __PYX_ERR(4, 2989, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CORREL", 0, 2, 3, i); __PYX_ERR(4, 2989, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2989, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2978, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2989, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2978, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2989, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2980, __pyx_L3_error) + __pyx_v_real0 = ((PyArrayObject *)values[0]); + __pyx_v_real1 = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2991, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("EMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 2978, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CORREL", 0, 2, 3, __pyx_nargs); __PYX_ERR(4, 2989, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.EMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CORREL", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 2980, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_194EMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(4, 2991, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(4, 2991, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_196CORREL(__pyx_self, __pyx_v_real0, __pyx_v_real1, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -26086,7 +26821,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_194EMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_196CORREL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -26098,35 +26833,43 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_194EMA(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + 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("EMA", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __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_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2999, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3011, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3012, __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_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3001, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 3013, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3014, __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_EMA_Lookback(__pyx_v_timeperiod)); + __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(4, 3004, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3017, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CORREL(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3006, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CORREL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3019, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -26139,11 +26882,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_194EMA(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.EMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CORREL", __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_real0); + __Pyx_XDECREF((PyObject *)__pyx_v_real1); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -26151,16 +26895,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_194EMA(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_197EXP(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_199COS(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_196EXP, "EXP(ndarray real)\n\nEXP(real)\n\nVector Arithmetic Exp (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_197EXP = {"EXP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_197EXP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_196EXP}; -static PyObject *__pyx_pw_5talib_7_ta_lib_197EXP(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_198COS, "COS(ndarray real)\n\nCOS(real)\n\nVector Trigonometric Cos (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_199COS = {"COS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_199COS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_198COS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_199COS(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -26178,7 +26922,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("EXP (wrapper)", 0); + __Pyx_RefNannySetupContext("COS (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -26190,44 +26934,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3009, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3022, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3009, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3022, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "EXP", 0) < (0)) __PYX_ERR(4, 3009, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "COS", 0) < (0)) __PYX_ERR(4, 3022, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("EXP", 1, 1, 1, i); __PYX_ERR(4, 3009, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("COS", 1, 1, 1, i); __PYX_ERR(4, 3022, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3009, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3022, __pyx_L3_error) } __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("EXP", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3009, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("COS", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3022, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.EXP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.COS", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3011, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_196EXP(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3024, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_198COS(__pyx_self, __pyx_v_real); /* function exit code */ goto __pyx_L0; @@ -26246,7 +26990,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_196EXP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_198COS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -26262,31 +27006,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_196EXP(CYTHON_UNUSED PyObject *__pyx_s int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("EXP", 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(4, 3028, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3041, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3030, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3043, __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_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(4, 3033, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3046, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_COS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EXP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3035, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3048, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -26299,7 +27043,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_196EXP(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.EXP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.COS", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -26311,16 +27055,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_196EXP(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_199FLOOR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_201COSH(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_198FLOOR, "FLOOR(ndarray real)\n\nFLOOR(real)\n\nVector Floor (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_199FLOOR = {"FLOOR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_199FLOOR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_198FLOOR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_199FLOOR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_200COSH, "COSH(ndarray real)\n\nCOSH(real)\n\nVector Trigonometric Cosh (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_201COSH = {"COSH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_201COSH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_200COSH}; +static PyObject *__pyx_pw_5talib_7_ta_lib_201COSH(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -26338,7 +27082,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("FLOOR (wrapper)", 0); + __Pyx_RefNannySetupContext("COSH (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -26350,44 +27094,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3038, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3051, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3038, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3051, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "FLOOR", 0) < (0)) __PYX_ERR(4, 3038, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "COSH", 0) < (0)) __PYX_ERR(4, 3051, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("FLOOR", 1, 1, 1, i); __PYX_ERR(4, 3038, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("COSH", 1, 1, 1, i); __PYX_ERR(4, 3051, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3038, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3051, __pyx_L3_error) } __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("FLOOR", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3038, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("COSH", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3051, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.FLOOR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.COSH", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3040, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_198FLOOR(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3053, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_200COSH(__pyx_self, __pyx_v_real); /* function exit code */ goto __pyx_L0; @@ -26406,7 +27150,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_198FLOOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_200COSH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -26422,31 +27166,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_198FLOOR(CYTHON_UNUSED PyObject *__pyx int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("FLOOR", 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(4, 3057, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3070, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3059, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3072, __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_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(4, 3062, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3075, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_COSH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FLOOR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3064, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COSH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3077, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -26459,7 +27203,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_198FLOOR(CYTHON_UNUSED PyObject *__pyx /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.FLOOR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.COSH", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -26471,16 +27215,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_198FLOOR(CYTHON_UNUSED PyObject *__pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_201HT_DCPERIOD(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_203CUMSUM(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_200HT_DCPERIOD, "HT_DCPERIOD(ndarray real)\n\nHT_DCPERIOD(real)\n\nHilbert Transform - Dominant Cycle Period (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_201HT_DCPERIOD = {"HT_DCPERIOD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_201HT_DCPERIOD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_200HT_DCPERIOD}; -static PyObject *__pyx_pw_5talib_7_ta_lib_201HT_DCPERIOD(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_202CUMSUM, "CUMSUM(ndarray real)\n\nCUMSUM(real)\n\nCumulative Sum (Math Operators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_203CUMSUM = {"CUMSUM", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_203CUMSUM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_202CUMSUM}; +static PyObject *__pyx_pw_5talib_7_ta_lib_203CUMSUM(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -26498,7 +27242,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("HT_DCPERIOD (wrapper)", 0); + __Pyx_RefNannySetupContext("CUMSUM (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -26510,44 +27254,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3067, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3080, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3067, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3080, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HT_DCPERIOD", 0) < (0)) __PYX_ERR(4, 3067, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CUMSUM", 0) < (0)) __PYX_ERR(4, 3080, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HT_DCPERIOD", 1, 1, 1, i); __PYX_ERR(4, 3067, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CUMSUM", 1, 1, 1, i); __PYX_ERR(4, 3080, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3067, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3080, __pyx_L3_error) } __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("HT_DCPERIOD", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3067, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CUMSUM", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3080, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.HT_DCPERIOD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CUMSUM", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3069, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_200HT_DCPERIOD(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3082, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_202CUMSUM(__pyx_self, __pyx_v_real); /* function exit code */ goto __pyx_L0; @@ -26566,7 +27310,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_200HT_DCPERIOD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_202CUMSUM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -26582,31 +27326,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_200HT_DCPERIOD(CYTHON_UNUSED PyObject int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("HT_DCPERIOD", 0); + __Pyx_RefNannySetupContext("CUMSUM", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3086, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3099, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3088, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3101, __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_v_lookback = (__pyx_v_begidx + TA_CUMSUM_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(4, 3091, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3104, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CUMSUM(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPERIOD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3093, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CUMSUM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3106, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -26619,7 +27363,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_200HT_DCPERIOD(CYTHON_UNUSED PyObject /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.HT_DCPERIOD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CUMSUM", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -26631,16 +27375,225 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_200HT_DCPERIOD(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_203HT_DCPHASE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_205CVI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_202HT_DCPHASE, "HT_DCPHASE(ndarray real)\n\nHT_DCPHASE(real)\n\nHilbert Transform - Dominant Cycle Phase (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_203HT_DCPHASE = {"HT_DCPHASE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_203HT_DCPHASE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_202HT_DCPHASE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_203HT_DCPHASE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_204CVI, "CVI(ndarray high, ndarray low, int timeperiod=-0x80000000, int rocperiod=-0x80000000)\n\nCVI(high, low[, timeperiod=?, rocperiod=?])\n\nChaikin's Volatility (Volatility Indicators)\n\nInputs:\n prices: ['high', 'low']\nParameters:\n timeperiod: 10\n rocperiod: 10\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_205CVI = {"CVI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_205CVI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_204CVI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_205CVI(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + int __pyx_v_timeperiod; + int __pyx_v_rocperiod; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CVI (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_rocperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3109, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 3109, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3109, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3109, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3109, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CVI", 0) < (0)) __PYX_ERR(4, 3109, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CVI", 0, 2, 4, i); __PYX_ERR(4, 3109, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 3109, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3109, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3109, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3109, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3111, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + if (values[3]) { + __pyx_v_rocperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_rocperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3111, __pyx_L3_error) + } else { + __pyx_v_rocperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CVI", 0, 2, 4, __pyx_nargs); __PYX_ERR(4, 3109, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CVI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 3111, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 3111, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_204CVI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod, __pyx_v_rocperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_204CVI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod, int __pyx_v_rocperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + 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("CVI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3131, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3132, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 3133, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3134, __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_CVI_Lookback(__pyx_v_timeperiod, __pyx_v_rocperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3137, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CVI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_rocperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CVI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3139, __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.CVI", __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_207DEMA(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_206DEMA, "DEMA(ndarray real, int timeperiod=-0x80000000)\n\nDEMA(real[, timeperiod=?])\n\nDouble Exponential Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_207DEMA = {"DEMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_207DEMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_206DEMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_207DEMA(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -26648,17 +27601,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("HT_DCPHASE (wrapper)", 0); + __Pyx_RefNannySetupContext("DEMA (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -26668,46 +27622,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3096, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3142, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3142, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3096, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3142, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HT_DCPHASE", 0) < (0)) __PYX_ERR(4, 3096, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "DEMA", 0) < (0)) __PYX_ERR(4, 3142, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HT_DCPHASE", 1, 1, 1, i); __PYX_ERR(4, 3096, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("DEMA", 0, 1, 2, i); __PYX_ERR(4, 3142, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3096, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3142, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3142, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3144, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("HT_DCPHASE", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3096, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("DEMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3142, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.HT_DCPHASE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DEMA", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3098, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_202HT_DCPHASE(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3144, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_206DEMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -26726,7 +27696,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_202HT_DCPHASE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_206DEMA(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; @@ -26742,31 +27712,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_202HT_DCPHASE(CYTHON_UNUSED PyObject * int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("HT_DCPHASE", 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(4, 3115, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3163, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3117, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3165, __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_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(4, 3120, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3168, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_DEMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPHASE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3122, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DEMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -26779,7 +27749,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_202HT_DCPHASE(CYTHON_UNUSED PyObject * /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.HT_DCPHASE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DEMA", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -26791,34 +27761,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_202HT_DCPHASE(CYTHON_UNUSED PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_205HT_PHASOR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_209DIV(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_204HT_PHASOR, "HT_PHASOR(ndarray real)\n\nHT_PHASOR(real)\n\nHilbert Transform - Phasor Components (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n inphase\n quadrature"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_205HT_PHASOR = {"HT_PHASOR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_205HT_PHASOR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_204HT_PHASOR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_205HT_PHASOR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_208DIV, "DIV(ndarray real0, ndarray real1)\n\nDIV(real0, real1)\n\nVector Arithmetic Div (Math Operators)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_209DIV = {"DIV", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_209DIV, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_208DIV}; +static PyObject *__pyx_pw_5talib_7_ta_lib_209DIV(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_real0 = 0; + PyArrayObject *__pyx_v_real1 = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("HT_PHASOR (wrapper)", 0); + __Pyx_RefNannySetupContext("DIV (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -26828,46 +27799,54 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3125, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3173, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3173, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3125, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3173, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HT_PHASOR", 0) < (0)) __PYX_ERR(4, 3125, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HT_PHASOR", 1, 1, 1, i); __PYX_ERR(4, 3125, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "DIV", 0) < (0)) __PYX_ERR(4, 3173, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("DIV", 1, 2, 2, i); __PYX_ERR(4, 3173, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3125, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3173, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3173, __pyx_L3_error) } - __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_real0 = ((PyArrayObject *)values[0]); + __pyx_v_real1 = ((PyArrayObject *)values[1]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("HT_PHASOR", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3125, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("DIV", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 3173, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.HT_PHASOR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DIV", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3127, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_204HT_PHASOR(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(4, 3175, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(4, 3175, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_208DIV(__pyx_self, __pyx_v_real0, __pyx_v_real1); /* function exit code */ goto __pyx_L0; @@ -26886,7 +27865,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_204HT_PHASOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_208DIV(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; @@ -26894,71 +27873,65 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_204HT_PHASOR(CYTHON_UNUSED PyObject *_ TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinphase = 0; - PyArrayObject *__pyx_v_outquadrature = 0; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + 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("HT_PHASOR", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("DIV", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real0); + __Pyx_INCREF((PyObject *)__pyx_v_real1); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3146, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3194, __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_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3148, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 3195, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3196, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_HT_PHASOR_Lookback()); + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3151, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinphase = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __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(4, 3152, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outquadrature = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_HT_PHASOR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinphase)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outquadrature)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_DIV(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_PHASOR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3154, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DIV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3201, __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(4, 3155, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_outinphase); - __Pyx_GIVEREF((PyObject *)__pyx_v_outinphase); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outinphase)) != (0)) __PYX_ERR(4, 3155, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outquadrature); - __Pyx_GIVEREF((PyObject *)__pyx_v_outquadrature); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outquadrature)) != (0)) __PYX_ERR(4, 3155, __pyx_L1_error); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; + __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_PHASOR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DIV", __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_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; @@ -26966,34 +27939,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_204HT_PHASOR(CYTHON_UNUSED PyObject *_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_207HT_SINE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_211DONCHIAN(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_206HT_SINE, "HT_SINE(ndarray real)\n\nHT_SINE(real)\n\nHilbert Transform - SineWave (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n sine\n leadsine"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_207HT_SINE = {"HT_SINE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_207HT_SINE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_206HT_SINE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_207HT_SINE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_210DONCHIAN, "DONCHIAN(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nDONCHIAN(high, low[, timeperiod=?])\n\nDonchian Channels (Overlap Studies)\n\nInputs:\n prices: ['high', 'low']\nParameters:\n timeperiod: 20\nOutputs:\n upperband\n middleband\n lowerband"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_211DONCHIAN = {"DONCHIAN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_211DONCHIAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_210DONCHIAN}; +static PyObject *__pyx_pw_5talib_7_ta_lib_211DONCHIAN(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("HT_SINE (wrapper)", 0); + __Pyx_RefNannySetupContext("DONCHIAN (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -27003,46 +27978,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3157, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3204, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3204, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3204, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3157, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3204, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HT_SINE", 0) < (0)) __PYX_ERR(4, 3157, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HT_SINE", 1, 1, 1, i); __PYX_ERR(4, 3157, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "DONCHIAN", 0) < (0)) __PYX_ERR(4, 3204, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("DONCHIAN", 0, 2, 3, i); __PYX_ERR(4, 3204, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3157, __pyx_L3_error) + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3204, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3204, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3204, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3206, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("HT_SINE", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3157, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("DONCHIAN", 0, 2, 3, __pyx_nargs); __PYX_ERR(4, 3204, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.HT_SINE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DONCHIAN", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3159, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_206HT_SINE(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 3206, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 3206, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_210DONCHIAN(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -27061,7 +28060,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_206HT_SINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_210DONCHIAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -27069,57 +28068,74 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_206HT_SINE(CYTHON_UNUSED PyObject *__p TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outsine = 0; - PyArrayObject *__pyx_v_outleadsine = 0; + PyArrayObject *__pyx_v_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; + 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("HT_SINE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("DONCHIAN", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3178, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3230, __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_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3180, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 3231, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3232, __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_HT_SINE_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_DONCHIAN_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(4, 3183, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3235, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outsine = ((PyArrayObject *)__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(4, 3184, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3236, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outleadsine = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outrealmiddleband = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_HT_SINE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outsine)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outleadsine)) + __pyx_v_lookback)); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3237, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreallowerband = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_DONCHIAN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outrealupperband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outrealmiddleband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreallowerband)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_SINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3186, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DONCHIAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3239, __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(4, 3187, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3240, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_outsine); - __Pyx_GIVEREF((PyObject *)__pyx_v_outsine); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outsine)) != (0)) __PYX_ERR(4, 3187, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outleadsine); - __Pyx_GIVEREF((PyObject *)__pyx_v_outleadsine); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outleadsine)) != (0)) __PYX_ERR(4, 3187, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outrealupperband); + __Pyx_GIVEREF((PyObject *)__pyx_v_outrealupperband); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outrealupperband)) != (0)) __PYX_ERR(4, 3240, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outrealmiddleband); + __Pyx_GIVEREF((PyObject *)__pyx_v_outrealmiddleband); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outrealmiddleband)) != (0)) __PYX_ERR(4, 3240, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outreallowerband); + __Pyx_GIVEREF((PyObject *)__pyx_v_outreallowerband); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_outreallowerband)) != (0)) __PYX_ERR(4, 3240, __pyx_L1_error); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; @@ -27128,12 +28144,14 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_206HT_SINE(CYTHON_UNUSED PyObject *__p /* 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_AddTraceback("talib._ta_lib.DONCHIAN", __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_XDECREF((PyObject *)__pyx_v_outrealupperband); + __Pyx_XDECREF((PyObject *)__pyx_v_outrealmiddleband); + __Pyx_XDECREF((PyObject *)__pyx_v_outreallowerband); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -27141,16 +28159,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_206HT_SINE(CYTHON_UNUSED PyObject *__p /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_209HT_TRENDLINE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_213DPO(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_208HT_TRENDLINE, "HT_TRENDLINE(ndarray real)\n\nHT_TRENDLINE(real)\n\nHilbert Transform - Instantaneous Trendline (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_209HT_TRENDLINE = {"HT_TRENDLINE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_209HT_TRENDLINE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_208HT_TRENDLINE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_209HT_TRENDLINE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_212DPO, "DPO(ndarray real, int timeperiod=-0x80000000)\n\nDPO(real[, timeperiod=?])\n\nDetrended Price Oscillator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 20\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_213DPO = {"DPO", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_213DPO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_212DPO}; +static PyObject *__pyx_pw_5talib_7_ta_lib_213DPO(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -27158,17 +28176,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("HT_TRENDLINE (wrapper)", 0); + __Pyx_RefNannySetupContext("DPO (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -27178,46 +28197,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3189, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3242, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3242, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3189, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3242, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HT_TRENDLINE", 0) < (0)) __PYX_ERR(4, 3189, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "DPO", 0) < (0)) __PYX_ERR(4, 3242, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HT_TRENDLINE", 1, 1, 1, i); __PYX_ERR(4, 3189, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("DPO", 0, 1, 2, i); __PYX_ERR(4, 3242, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3189, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3242, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3242, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3244, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("HT_TRENDLINE", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3189, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("DPO", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3242, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.HT_TRENDLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DPO", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3191, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_208HT_TRENDLINE(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3244, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_212DPO(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -27236,7 +28271,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_208HT_TRENDLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_212DPO(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; @@ -27252,31 +28287,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_208HT_TRENDLINE(CYTHON_UNUSED PyObject int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("HT_TRENDLINE", 0); + __Pyx_RefNannySetupContext("DPO", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3208, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3210, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3265, __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_v_lookback = (__pyx_v_begidx + TA_DPO_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(4, 3213, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3268, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_DPO(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDLINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3215, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DPO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3270, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -27289,7 +28324,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_208HT_TRENDLINE(CYTHON_UNUSED PyObject /* 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_AddTraceback("talib._ta_lib.DPO", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -27301,34 +28336,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_208HT_TRENDLINE(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_211HT_TRENDMODE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_215DX(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_210HT_TRENDMODE, "HT_TRENDMODE(ndarray real)\n\nHT_TRENDMODE(real)\n\nHilbert Transform - Trend vs Cycle Mode (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_211HT_TRENDMODE = {"HT_TRENDMODE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_211HT_TRENDMODE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_210HT_TRENDMODE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_211HT_TRENDMODE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_214DX, "DX(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nDX(high, low, close[, timeperiod=?])\n\nDirectional Movement Index (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_215DX = {"DX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_215DX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_214DX}; +static PyObject *__pyx_pw_5talib_7_ta_lib_215DX(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("HT_TRENDMODE (wrapper)", 0); + __Pyx_RefNannySetupContext("DX (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -27338,46 +28376,78 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3218, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3273, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 3273, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3273, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3273, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3218, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3273, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HT_TRENDMODE", 0) < (0)) __PYX_ERR(4, 3218, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HT_TRENDMODE", 1, 1, 1, i); __PYX_ERR(4, 3218, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "DX", 0) < (0)) __PYX_ERR(4, 3273, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("DX", 0, 3, 4, i); __PYX_ERR(4, 3273, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3218, __pyx_L3_error) + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 3273, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3273, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3273, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3273, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3275, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("HT_TRENDMODE", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3218, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("DX", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 3273, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.HT_TRENDMODE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DX", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3220, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_210HT_TRENDMODE(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 3275, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 3275, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 3275, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_214DX(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -27396,7 +28466,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_210HT_TRENDMODE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_214DX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -27404,56 +28474,72 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_210HT_TRENDMODE(CYTHON_UNUSED PyObject TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + 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("HT_TRENDMODE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("DX", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3237, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3294, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3295, __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_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3239, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3296, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 3297, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3298, __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_HT_TRENDMODE_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_DX_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(4, 3242, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_HT_TRENDMODE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_DX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDMODE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3244, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3303, __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); + __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_TRENDMODE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.DX", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -27461,24 +28547,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_210HT_TRENDMODE(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_213IMI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_217EFI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_212IMI, "IMI(ndarray open, ndarray close, int timeperiod=-0x80000000)\n\nIMI(open, close[, timeperiod=?])\n\nIntraday Momentum Index (Momentum Indicators)\n\nInputs:\n prices: ['open', 'close']\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_213IMI = {"IMI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_213IMI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_212IMI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_213IMI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_216EFI, "EFI(ndarray close, ndarray volume, int timeperiod=-0x80000000)\n\nEFI(close, volume[, timeperiod=?])\n\nElder's Force Index (Volume Indicators)\n\nInputs:\n prices: ['close', 'volume']\nParameters:\n timeperiod: 13\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_217EFI = {"EFI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_217EFI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_216EFI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_217EFI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; PyArrayObject *__pyx_v_close = 0; + PyArrayObject *__pyx_v_volume = 0; int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; @@ -27490,7 +28576,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("IMI (wrapper)", 0); + __Pyx_RefNannySetupContext("EFI (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -27500,70 +28586,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3247, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3306, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3247, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3306, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3247, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3306, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3247, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3306, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "IMI", 0) < (0)) __PYX_ERR(4, 3247, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "EFI", 0) < (0)) __PYX_ERR(4, 3306, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("IMI", 0, 2, 3, i); __PYX_ERR(4, 3247, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("EFI", 0, 2, 3, i); __PYX_ERR(4, 3306, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3247, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3306, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3247, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3306, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3247, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3306, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_close = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[0]); + __pyx_v_volume = ((PyArrayObject *)values[1]); if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3249, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3308, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("IMI", 0, 2, 3, __pyx_nargs); __PYX_ERR(4, 3247, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("EFI", 0, 2, 3, __pyx_nargs); __PYX_ERR(4, 3306, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.IMI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.EFI", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 3249, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 3249, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_212IMI(__pyx_self, __pyx_v_open, __pyx_v_close, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 3308, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(4, 3308, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_216EFI(__pyx_self, __pyx_v_close, __pyx_v_volume, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -27582,7 +28668,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_212IMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_216EFI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -27599,38 +28685,38 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_212IMI(CYTHON_UNUSED PyObject *__pyx_s int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("IMI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_RefNannySetupContext("EFI", 0); __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_INCREF((PyObject *)__pyx_v_volume); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3268, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3327, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3269, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3328, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_open, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 3270, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 3329, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3271, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3330, __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_IMI_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_EFI_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(4, 3274, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3333, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_IMI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_EFI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_IMI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3276, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EFI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3335, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -27643,12 +28729,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_212IMI(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.IMI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.EFI", __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_close); + __Pyx_XDECREF((PyObject *)__pyx_v_volume); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -27656,16 +28742,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_212IMI(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_215KAMA(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_219EMA(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_214KAMA, "KAMA(ndarray real, int timeperiod=-0x80000000)\n\nKAMA(real[, timeperiod=?])\n\nKaufman Adaptive Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_215KAMA = {"KAMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_215KAMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_214KAMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_215KAMA(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_218EMA, "EMA(ndarray real, int timeperiod=-0x80000000)\n\nEMA(real[, timeperiod=?])\n\nExponential Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_219EMA = {"EMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_219EMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_218EMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_219EMA(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -27684,7 +28770,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("KAMA (wrapper)", 0); + __Pyx_RefNannySetupContext("EMA (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -27696,60 +28782,60 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3279, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3338, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3279, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3338, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3279, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3338, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "KAMA", 0) < (0)) __PYX_ERR(4, 3279, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "EMA", 0) < (0)) __PYX_ERR(4, 3338, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("KAMA", 0, 1, 2, i); __PYX_ERR(4, 3279, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("EMA", 0, 1, 2, i); __PYX_ERR(4, 3338, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3279, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3338, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3279, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3338, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3281, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3340, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("KAMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3279, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("EMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3338, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.KAMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.EMA", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3281, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_214KAMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3340, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_218EMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -27768,7 +28854,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_214KAMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_218EMA(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; @@ -27784,31 +28870,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_214KAMA(CYTHON_UNUSED PyObject *__pyx_ int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("KAMA", 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(4, 3300, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3359, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3302, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3361, __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_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(4, 3305, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3364, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_EMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KAMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3307, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3366, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -27821,7 +28907,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_214KAMA(CYTHON_UNUSED PyObject *__pyx_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.KAMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.EMA", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -27833,16 +28919,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_214KAMA(CYTHON_UNUSED PyObject *__pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_217LINEARREG(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_221ER(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_216LINEARREG, "LINEARREG(ndarray real, int timeperiod=-0x80000000)\n\nLINEARREG(real[, timeperiod=?])\n\nLinear Regression (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_217LINEARREG = {"LINEARREG", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_217LINEARREG, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_216LINEARREG}; -static PyObject *__pyx_pw_5talib_7_ta_lib_217LINEARREG(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_220ER, "ER(ndarray real, int timeperiod=-0x80000000)\n\nER(real[, timeperiod=?])\n\nKaufman Efficiency Ratio (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_221ER = {"ER", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_221ER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_220ER}; +static PyObject *__pyx_pw_5talib_7_ta_lib_221ER(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -27861,7 +28947,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("LINEARREG (wrapper)", 0); + __Pyx_RefNannySetupContext("ER (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -27873,60 +28959,60 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3310, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3369, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3310, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3369, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3310, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3369, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "LINEARREG", 0) < (0)) __PYX_ERR(4, 3310, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ER", 0) < (0)) __PYX_ERR(4, 3369, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("LINEARREG", 0, 1, 2, i); __PYX_ERR(4, 3310, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ER", 0, 1, 2, i); __PYX_ERR(4, 3369, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3310, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3369, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3310, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3369, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3312, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3371, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("LINEARREG", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3310, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("ER", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3369, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.LINEARREG", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ER", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3312, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_216LINEARREG(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3371, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_220ER(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -27945,7 +29031,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_216LINEARREG(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_220ER(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; @@ -27961,31 +29047,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_216LINEARREG(CYTHON_UNUSED PyObject *_ int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("LINEARREG", 0); + __Pyx_RefNannySetupContext("ER", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3331, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3390, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3333, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3392, __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_v_lookback = (__pyx_v_begidx + TA_ER_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(4, 3336, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3395, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_ER(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3338, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -27998,7 +29084,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_216LINEARREG(CYTHON_UNUSED PyObject *_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.LINEARREG", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ER", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -28010,35 +29096,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_216LINEARREG(CYTHON_UNUSED PyObject *_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_219LINEARREG_ANGLE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_223ERI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_218LINEARREG_ANGLE, "LINEARREG_ANGLE(ndarray real, int timeperiod=-0x80000000)\n\nLINEARREG_ANGLE(real[, timeperiod=?])\n\nLinear Regression Angle (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_219LINEARREG_ANGLE = {"LINEARREG_ANGLE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_219LINEARREG_ANGLE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_218LINEARREG_ANGLE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_219LINEARREG_ANGLE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_222ERI, "ERI(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nERI(high, low, close[, timeperiod=?])\n\nElder Ray Index (Bull Power / Bear Power) (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n timeperiod: 13\nOutputs:\n bullpower\n bearpower"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_223ERI = {"ERI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_223ERI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_222ERI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_223ERI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("LINEARREG_ANGLE (wrapper)", 0); + __Pyx_RefNannySetupContext("ERI (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -28048,62 +29136,269 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3341, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3400, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 3400, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3400, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3341, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3400, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3341, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3400, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "LINEARREG_ANGLE", 0) < (0)) __PYX_ERR(4, 3341, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("LINEARREG_ANGLE", 0, 1, 2, i); __PYX_ERR(4, 3341, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ERI", 0) < (0)) __PYX_ERR(4, 3400, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ERI", 0, 3, 4, i); __PYX_ERR(4, 3400, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3341, __pyx_L3_error) + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 3400, __pyx_L3_error) CYTHON_FALLTHROUGH; - case 1: + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3400, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3400, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3341, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3400, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3343, __pyx_L3_error) + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3402, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("LINEARREG_ANGLE", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3341, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("ERI", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 3400, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.LINEARREG_ANGLE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ERI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 3402, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 3402, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 3402, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_222ERI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_222ERI(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_outbullpower = 0; + PyArrayObject *__pyx_v_outbearpower = 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("ERI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3423, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3424, __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(4, 3425, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 3426, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3427, __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_ERI_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(4, 3430, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outbullpower = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3431, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outbearpower = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_ERI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outbullpower)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outbearpower)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ERI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3433, __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(4, 3434, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_outbullpower); + __Pyx_GIVEREF((PyObject *)__pyx_v_outbullpower); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outbullpower)) != (0)) __PYX_ERR(4, 3434, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outbearpower); + __Pyx_GIVEREF((PyObject *)__pyx_v_outbearpower); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outbearpower)) != (0)) __PYX_ERR(4, 3434, __pyx_L1_error); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.ERI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_outbullpower); + __Pyx_XDECREF((PyObject *)__pyx_v_outbearpower); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_225EXP(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_224EXP, "EXP(ndarray real)\n\nEXP(real)\n\nVector Arithmetic Exp (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_225EXP = {"EXP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_225EXP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_224EXP}; +static PyObject *__pyx_pw_5talib_7_ta_lib_225EXP(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("EXP (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3436, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3436, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "EXP", 0) < (0)) __PYX_ERR(4, 3436, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("EXP", 1, 1, 1, i); __PYX_ERR(4, 3436, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3436, __pyx_L3_error) + } + __pyx_v_real = ((PyArrayObject *)values[0]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("EXP", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3436, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.EXP", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3343, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_218LINEARREG_ANGLE(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3438, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_224EXP(__pyx_self, __pyx_v_real); /* function exit code */ goto __pyx_L0; @@ -28122,7 +29417,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_218LINEARREG_ANGLE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_224EXP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -28138,31 +29433,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_218LINEARREG_ANGLE(CYTHON_UNUSED PyObj int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("LINEARREG_ANGLE", 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(4, 3362, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3455, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3364, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3457, __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_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(4, 3367, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3460, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_EXP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_ANGLE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3369, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EXP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3462, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -28175,7 +29470,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_218LINEARREG_ANGLE(CYTHON_UNUSED PyObj /* 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_AddTraceback("talib._ta_lib.EXP", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -28187,16 +29482,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_218LINEARREG_ANGLE(CYTHON_UNUSED PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_221LINEARREG_INTERCEPT(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_227FLOOR(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_220LINEARREG_INTERCEPT, "LINEARREG_INTERCEPT(ndarray real, int timeperiod=-0x80000000)\n\nLINEARREG_INTERCEPT(real[, timeperiod=?])\n\nLinear Regression Intercept (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_221LINEARREG_INTERCEPT = {"LINEARREG_INTERCEPT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_221LINEARREG_INTERCEPT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_220LINEARREG_INTERCEPT}; -static PyObject *__pyx_pw_5talib_7_ta_lib_221LINEARREG_INTERCEPT(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_226FLOOR, "FLOOR(ndarray real)\n\nFLOOR(real)\n\nVector Floor (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_227FLOOR = {"FLOOR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_227FLOOR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_226FLOOR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_227FLOOR(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -28204,18 +29499,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("LINEARREG_INTERCEPT (wrapper)", 0); + __Pyx_RefNannySetupContext("FLOOR (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -28225,62 +29519,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3372, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3465, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3372, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3372, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3465, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "LINEARREG_INTERCEPT", 0) < (0)) __PYX_ERR(4, 3372, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "FLOOR", 0) < (0)) __PYX_ERR(4, 3465, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("LINEARREG_INTERCEPT", 0, 1, 2, i); __PYX_ERR(4, 3372, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("FLOOR", 1, 1, 1, i); __PYX_ERR(4, 3465, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3372, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3372, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3465, __pyx_L3_error) } __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3374, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("LINEARREG_INTERCEPT", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3372, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("FLOOR", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3465, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.LINEARREG_INTERCEPT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.FLOOR", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3374, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_220LINEARREG_INTERCEPT(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3467, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_226FLOOR(__pyx_self, __pyx_v_real); /* function exit code */ goto __pyx_L0; @@ -28299,7 +29577,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_220LINEARREG_INTERCEPT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_226FLOOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -28315,31 +29593,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_220LINEARREG_INTERCEPT(CYTHON_UNUSED P int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("LINEARREG_INTERCEPT", 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(4, 3393, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3484, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3395, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3486, __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_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(4, 3398, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3489, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_FLOOR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_INTERCEPT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3400, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FLOOR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3491, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -28352,7 +29630,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_220LINEARREG_INTERCEPT(CYTHON_UNUSED P /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.LINEARREG_INTERCEPT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.FLOOR", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -28364,16 +29642,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_220LINEARREG_INTERCEPT(CYTHON_UNUSED P /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_223LINEARREG_SLOPE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_229FOSC(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_222LINEARREG_SLOPE, "LINEARREG_SLOPE(ndarray real, int timeperiod=-0x80000000)\n\nLINEARREG_SLOPE(real[, timeperiod=?])\n\nLinear Regression Slope (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_223LINEARREG_SLOPE = {"LINEARREG_SLOPE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_223LINEARREG_SLOPE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_222LINEARREG_SLOPE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_223LINEARREG_SLOPE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_228FOSC, "FOSC(ndarray real, int timeperiod=-0x80000000)\n\nFOSC(real[, timeperiod=?])\n\nForecast Oscillator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 5\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_229FOSC = {"FOSC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_229FOSC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_228FOSC}; +static PyObject *__pyx_pw_5talib_7_ta_lib_229FOSC(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -28392,7 +29670,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("LINEARREG_SLOPE (wrapper)", 0); + __Pyx_RefNannySetupContext("FOSC (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -28404,60 +29682,60 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3403, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3494, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3403, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3494, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3403, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3494, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "LINEARREG_SLOPE", 0) < (0)) __PYX_ERR(4, 3403, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "FOSC", 0) < (0)) __PYX_ERR(4, 3494, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("LINEARREG_SLOPE", 0, 1, 2, i); __PYX_ERR(4, 3403, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("FOSC", 0, 1, 2, i); __PYX_ERR(4, 3494, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3403, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3494, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3403, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3494, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3405, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3496, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("LINEARREG_SLOPE", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3403, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("FOSC", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3494, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.LINEARREG_SLOPE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.FOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3405, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_222LINEARREG_SLOPE(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3496, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_228FOSC(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -28476,7 +29754,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_222LINEARREG_SLOPE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_228FOSC(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; @@ -28492,31 +29770,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_222LINEARREG_SLOPE(CYTHON_UNUSED PyObj int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("LINEARREG_SLOPE", 0); + __Pyx_RefNannySetupContext("FOSC", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3424, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3515, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3426, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3517, __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_v_lookback = (__pyx_v_begidx + TA_FOSC_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(4, 3429, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3520, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_FOSC(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_SLOPE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3431, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3522, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -28529,7 +29807,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_222LINEARREG_SLOPE(CYTHON_UNUSED PyObj /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.LINEARREG_SLOPE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.FOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -28541,34 +29819,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_222LINEARREG_SLOPE(CYTHON_UNUSED PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_225LN(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_231FRACTAL(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_224LN, "LN(ndarray real)\n\nLN(real)\n\nVector Log Natural (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_225LN = {"LN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_225LN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_224LN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_225LN(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_230FRACTAL, "FRACTAL(ndarray high, ndarray low, int leftbars=-0x80000000, int rightbars=-0x80000000)\n\nFRACTAL(high, low[, leftbars=?, rightbars=?])\n\nWilliams Fractal (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low']\nParameters:\n leftbars: 2\n rightbars: 2\nOutputs:\n swinghigh\n swinglow"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_231FRACTAL = {"FRACTAL", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_231FRACTAL, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_230FRACTAL}; +static PyObject *__pyx_pw_5talib_7_ta_lib_231FRACTAL(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + int __pyx_v_leftbars; + int __pyx_v_rightbars; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("LN (wrapper)", 0); + __Pyx_RefNannySetupContext("FRACTAL (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -28578,46 +29859,83 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_leftbars,&__pyx_mstate_global->__pyx_n_u_rightbars,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3434, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3525, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 3525, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3525, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3525, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3434, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3525, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "LN", 0) < (0)) __PYX_ERR(4, 3434, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("LN", 1, 1, 1, i); __PYX_ERR(4, 3434, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "FRACTAL", 0) < (0)) __PYX_ERR(4, 3525, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("FRACTAL", 0, 2, 4, i); __PYX_ERR(4, 3525, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3434, __pyx_L3_error) + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 3525, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3525, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3525, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3525, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_leftbars = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_leftbars == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3527, __pyx_L3_error) + } else { + __pyx_v_leftbars = ((int)((int)-2147483648)); + } + if (values[3]) { + __pyx_v_rightbars = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_rightbars == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3527, __pyx_L3_error) + } else { + __pyx_v_rightbars = ((int)((int)-2147483648)); } - __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("LN", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3434, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("FRACTAL", 0, 2, 4, __pyx_nargs); __PYX_ERR(4, 3525, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.LN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.FRACTAL", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3436, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_224LN(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 3527, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 3527, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_230FRACTAL(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_leftbars, __pyx_v_rightbars); /* function exit code */ goto __pyx_L0; @@ -28636,7 +29954,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_224LN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_230FRACTAL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_leftbars, int __pyx_v_rightbars) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -28644,56 +29962,80 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_224LN(CYTHON_UNUSED PyObject *__pyx_se TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outswinghigh = 0; + PyArrayObject *__pyx_v_outswinglow = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + 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("LN", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("FRACTAL", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3453, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3549, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3550, __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_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3455, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 3551, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3552, __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_LN_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_FRACTAL_Lookback(__pyx_v_leftbars, __pyx_v_rightbars)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3458, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3555, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outswinghigh = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_LN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3556, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outswinglow = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_FRACTAL(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_leftbars, __pyx_v_rightbars, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outswinghigh)) + __pyx_v_lookback), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outswinglow)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3460, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FRACTAL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3558, __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); + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3559, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_outswinghigh); + __Pyx_GIVEREF((PyObject *)__pyx_v_outswinghigh); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outswinghigh)) != (0)) __PYX_ERR(4, 3559, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outswinglow); + __Pyx_GIVEREF((PyObject *)__pyx_v_outswinglow); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outswinglow)) != (0)) __PYX_ERR(4, 3559, __pyx_L1_error); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; 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_AddTraceback("talib._ta_lib.FRACTAL", __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_outswinghigh); + __Pyx_XDECREF((PyObject *)__pyx_v_outswinglow); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -28701,34 +30043,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_224LN(CYTHON_UNUSED PyObject *__pyx_se /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_227LOG10(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_233HA(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_226LOG10, "LOG10(ndarray real)\n\nLOG10(real)\n\nVector Log10 (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_227LOG10 = {"LOG10", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_227LOG10, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_226LOG10}; -static PyObject *__pyx_pw_5talib_7_ta_lib_227LOG10(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_232HA, "HA(ndarray open, ndarray high, ndarray low, ndarray close)\n\nHA(open, high, low, close)\n\nHeikin-Ashi Candles (Price Transform)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n haopen\n hahigh\n halow\n haclose"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_233HA = {"HA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_233HA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_232HA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_233HA(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("LOG10 (wrapper)", 0); + __Pyx_RefNannySetupContext("HA (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -28738,46 +30083,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3463, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3561, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 3561, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3561, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3561, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3463, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3561, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "LOG10", 0) < (0)) __PYX_ERR(4, 3463, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("LOG10", 1, 1, 1, i); __PYX_ERR(4, 3463, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HA", 0) < (0)) __PYX_ERR(4, 3561, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HA", 1, 4, 4, i); __PYX_ERR(4, 3561, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3463, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3561, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3561, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3561, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 3561, __pyx_L3_error) } - __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("LOG10", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3463, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("HA", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 3561, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.LOG10", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HA", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3465, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_226LOG10(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 3563, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 3563, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 3563, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 3563, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_232HA(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -28796,7 +30165,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_226LOG10(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_232HA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -28804,56 +30173,114 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_226LOG10(CYTHON_UNUSED PyObject *__pyx TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outhaopen = 0; + PyArrayObject *__pyx_v_outhahigh = 0; + PyArrayObject *__pyx_v_outhalow = 0; + PyArrayObject *__pyx_v_outhaclose = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + 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("LOG10", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("HA", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3482, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3586, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3587, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3484, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3588, __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(4, 3589, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 3590, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3591, __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_LOG10_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_HA_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(4, 3487, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3594, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outhaopen = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_LOG10(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3595, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outhahigh = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3596, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outhalow = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3597, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outhaclose = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_HA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outhaopen)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outhahigh)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outhalow)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outhaclose)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LOG10, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3489, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3599, __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); + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3600, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_outhaopen); + __Pyx_GIVEREF((PyObject *)__pyx_v_outhaopen); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outhaopen)) != (0)) __PYX_ERR(4, 3600, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outhahigh); + __Pyx_GIVEREF((PyObject *)__pyx_v_outhahigh); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outhahigh)) != (0)) __PYX_ERR(4, 3600, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outhalow); + __Pyx_GIVEREF((PyObject *)__pyx_v_outhalow); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_outhalow)) != (0)) __PYX_ERR(4, 3600, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outhaclose); + __Pyx_GIVEREF((PyObject *)__pyx_v_outhaclose); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_outhaclose)) != (0)) __PYX_ERR(4, 3600, __pyx_L1_error); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.LOG10", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HA", __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_outhaopen); + __Pyx_XDECREF((PyObject *)__pyx_v_outhahigh); + __Pyx_XDECREF((PyObject *)__pyx_v_outhalow); + __Pyx_XDECREF((PyObject *)__pyx_v_outhaclose); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -28861,16 +30288,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_226LOG10(CYTHON_UNUSED PyObject *__pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_229MA(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_235HMA(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_228MA, "MA(ndarray real, int timeperiod=-0x80000000, int matype=0)\n\nMA(real[, timeperiod=?, matype=?])\n\nMoving average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\n matype: 0 (Simple Moving Average)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_229MA = {"MA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_229MA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_228MA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_229MA(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_234HMA, "HMA(ndarray real, int timeperiod=-0x80000000)\n\nHMA(real[, timeperiod=?])\n\nHull Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 20\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_235HMA = {"HMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_235HMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_234HMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_235HMA(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -28879,18 +30306,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds ) { PyArrayObject *__pyx_v_real = 0; int __pyx_v_timeperiod; - int __pyx_v_matype; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MA (wrapper)", 0); + __Pyx_RefNannySetupContext("HMA (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -28900,75 +30326,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3492, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3602, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3492, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3492, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3602, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3492, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3602, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MA", 0) < (0)) __PYX_ERR(4, 3492, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HMA", 0) < (0)) __PYX_ERR(4, 3602, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MA", 0, 1, 3, i); __PYX_ERR(4, 3492, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HMA", 0, 1, 2, i); __PYX_ERR(4, 3602, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3492, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3492, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3602, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3492, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3602, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3494, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3604, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } - if (values[2]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3494, __pyx_L3_error) - } else { - __pyx_v_matype = ((int)((int)0)); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MA", 0, 1, 3, __pyx_nargs); __PYX_ERR(4, 3492, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("HMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3602, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HMA", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3494, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_228MA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_matype); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3604, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_234HMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -28987,7 +30400,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_228MA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_matype) { +static PyObject *__pyx_pf_5talib_7_ta_lib_234HMA(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; @@ -29003,31 +30416,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_228MA(CYTHON_UNUSED PyObject *__pyx_se int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("MA", 0); + __Pyx_RefNannySetupContext("HMA", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3514, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3623, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3516, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3625, __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_v_lookback = (__pyx_v_begidx + TA_HMA_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(4, 3519, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3628, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_HMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3521, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3630, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -29040,7 +30453,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_228MA(CYTHON_UNUSED PyObject *__pyx_se /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HMA", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -29052,16 +30465,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_228MA(CYTHON_UNUSED PyObject *__pyx_se /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_231MACD(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_237HT_DCPERIOD(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_230MACD, "MACD(ndarray real, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int signalperiod=-0x80000000)\n\nMACD(real[, fastperiod=?, slowperiod=?, signalperiod=?])\n\nMoving Average Convergence/Divergence (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastperiod: 12\n slowperiod: 26\n signalperiod: 9\nOutputs:\n macd\n macdsignal\n macdhist"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_231MACD = {"MACD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_231MACD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_230MACD}; -static PyObject *__pyx_pw_5talib_7_ta_lib_231MACD(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_236HT_DCPERIOD, "HT_DCPERIOD(ndarray real)\n\nHT_DCPERIOD(real)\n\nHilbert Transform - Dominant Cycle Period (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_237HT_DCPERIOD = {"HT_DCPERIOD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_237HT_DCPERIOD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_236HT_DCPERIOD}; +static PyObject *__pyx_pw_5talib_7_ta_lib_237HT_DCPERIOD(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -29069,20 +30482,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyArrayObject *__pyx_v_real = 0; - int __pyx_v_fastperiod; - int __pyx_v_slowperiod; - int __pyx_v_signalperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MACD (wrapper)", 0); + __Pyx_RefNannySetupContext("HT_DCPERIOD (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -29092,88 +30502,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3524, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3633, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 3524, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3524, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3524, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3524, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3633, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MACD", 0) < (0)) __PYX_ERR(4, 3524, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HT_DCPERIOD", 0) < (0)) __PYX_ERR(4, 3633, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MACD", 0, 1, 4, i); __PYX_ERR(4, 3524, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HT_DCPERIOD", 1, 1, 1, i); __PYX_ERR(4, 3633, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 3524, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3524, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3524, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3524, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3633, __pyx_L3_error) } __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3526, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)((int)-2147483648)); - } - if (values[2]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3526, __pyx_L3_error) - } else { - __pyx_v_slowperiod = ((int)((int)-2147483648)); - } - if (values[3]) { - __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3526, __pyx_L3_error) - } else { - __pyx_v_signalperiod = ((int)((int)-2147483648)); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MACD", 0, 1, 4, __pyx_nargs); __PYX_ERR(4, 3524, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("HT_DCPERIOD", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3633, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MACD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_DCPERIOD", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3526, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_230MACD(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3635, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_236HT_DCPERIOD(__pyx_self, __pyx_v_real); /* function exit code */ goto __pyx_L0; @@ -29192,7 +30560,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_230MACD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_236HT_DCPERIOD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -29200,9 +30568,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_230MACD(CYTHON_UNUSED PyObject *__pyx_ TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outmacd = 0; - PyArrayObject *__pyx_v_outmacdsignal = 0; - PyArrayObject *__pyx_v_outmacdhist = 0; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -29210,70 +30576,47 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_230MACD(CYTHON_UNUSED PyObject *__pyx_ int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("MACD", 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(4, 3551, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3652, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3553, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3654, __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(4, 3556, __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(4, 3557, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outmacdsignal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __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(4, 3558, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3657, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outmacdhist = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_MACD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmacd)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmacdsignal)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmacdhist)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_HT_DCPERIOD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3560, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPERIOD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3659, __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(4, 3561, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_outmacd); - __Pyx_GIVEREF((PyObject *)__pyx_v_outmacd); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outmacd)) != (0)) __PYX_ERR(4, 3561, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outmacdsignal); - __Pyx_GIVEREF((PyObject *)__pyx_v_outmacdsignal); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outmacdsignal)) != (0)) __PYX_ERR(4, 3561, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outmacdhist); - __Pyx_GIVEREF((PyObject *)__pyx_v_outmacdhist); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_outmacdhist)) != (0)) __PYX_ERR(4, 3561, __pyx_L1_error); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; + __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.MACD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_DCPERIOD", __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_outreal); __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); @@ -29282,16 +30625,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_230MACD(CYTHON_UNUSED PyObject *__pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_233MACDEXT(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_239HT_DCPHASE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_232MACDEXT, "MACDEXT(ndarray real, int fastperiod=-0x80000000, int fastmatype=0, int slowperiod=-0x80000000, int slowmatype=0, int signalperiod=-0x80000000, int signalmatype=0)\n\nMACDEXT(real[, fastperiod=?, fastmatype=?, slowperiod=?, slowmatype=?, signalperiod=?, signalmatype=?])\n\nMACD with controllable MA type (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastperiod: 12\n fastmatype: 0\n slowperiod: 26\n slowmatype: 0\n signalperiod: 9\n signalmatype: 0\nOutputs:\n macd\n macdsignal\n macdhist"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_233MACDEXT = {"MACDEXT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_233MACDEXT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_232MACDEXT}; -static PyObject *__pyx_pw_5talib_7_ta_lib_233MACDEXT(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_238HT_DCPHASE, "HT_DCPHASE(ndarray real)\n\nHT_DCPHASE(real)\n\nHilbert Transform - Dominant Cycle Phase (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_239HT_DCPHASE = {"HT_DCPHASE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_239HT_DCPHASE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_238HT_DCPHASE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_239HT_DCPHASE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -29299,23 +30642,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyArrayObject *__pyx_v_real = 0; - int __pyx_v_fastperiod; - int __pyx_v_fastmatype; - int __pyx_v_slowperiod; - int __pyx_v_slowmatype; - int __pyx_v_signalperiod; - int __pyx_v_signalmatype; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[7] = {0,0,0,0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MACDEXT (wrapper)", 0); + __Pyx_RefNannySetupContext("HT_DCPHASE (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -29325,127 +30662,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_fastmatype,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_slowmatype,&__pyx_mstate_global->__pyx_n_u_signalperiod,&__pyx_mstate_global->__pyx_n_u_signalmatype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3563, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3662, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 7: - values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(4, 3563, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 3563, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 3563, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 3563, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3563, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3563, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3563, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3662, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MACDEXT", 0) < (0)) __PYX_ERR(4, 3563, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HT_DCPHASE", 0) < (0)) __PYX_ERR(4, 3662, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MACDEXT", 0, 1, 7, i); __PYX_ERR(4, 3563, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HT_DCPHASE", 1, 1, 1, i); __PYX_ERR(4, 3662, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 7: - values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(4, 3563, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 3563, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 3563, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 3563, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3563, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3563, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3563, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3662, __pyx_L3_error) } __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3565, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)((int)-2147483648)); - } - if (values[2]) { - __pyx_v_fastmatype = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3565, __pyx_L3_error) - } else { - __pyx_v_fastmatype = ((int)((int)0)); - } - if (values[3]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3565, __pyx_L3_error) - } else { - __pyx_v_slowperiod = ((int)((int)-2147483648)); - } - if (values[4]) { - __pyx_v_slowmatype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3565, __pyx_L3_error) - } else { - __pyx_v_slowmatype = ((int)((int)0)); - } - if (values[5]) { - __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3565, __pyx_L3_error) - } else { - __pyx_v_signalperiod = ((int)((int)-2147483648)); - } - if (values[6]) { - __pyx_v_signalmatype = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_signalmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3565, __pyx_L3_error) - } else { - __pyx_v_signalmatype = ((int)((int)0)); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MACDEXT", 0, 1, 7, __pyx_nargs); __PYX_ERR(4, 3563, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("HT_DCPHASE", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3662, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MACDEXT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_DCPHASE", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3565, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_232MACDEXT(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_fastmatype, __pyx_v_slowperiod, __pyx_v_slowmatype, __pyx_v_signalperiod, __pyx_v_signalmatype); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3664, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_238HT_DCPHASE(__pyx_self, __pyx_v_real); /* function exit code */ goto __pyx_L0; @@ -29464,7 +30720,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_232MACDEXT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_fastmatype, int __pyx_v_slowperiod, int __pyx_v_slowmatype, int __pyx_v_signalperiod, int __pyx_v_signalmatype) { +static PyObject *__pyx_pf_5talib_7_ta_lib_238HT_DCPHASE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -29472,9 +30728,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_232MACDEXT(CYTHON_UNUSED PyObject *__p TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outmacd = 0; - PyArrayObject *__pyx_v_outmacdsignal = 0; - PyArrayObject *__pyx_v_outmacdhist = 0; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -29482,70 +30736,47 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_232MACDEXT(CYTHON_UNUSED PyObject *__p int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("MACDEXT", 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(4, 3593, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3681, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3595, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3683, __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(4, 3598, __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(4, 3599, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outmacdsignal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __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(4, 3600, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3686, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outmacdhist = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_MACDEXT(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_fastmatype, __pyx_v_slowperiod, __pyx_v_slowmatype, __pyx_v_signalperiod, __pyx_v_signalmatype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmacd)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmacdsignal)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmacdhist)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_HT_DCPHASE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDEXT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3602, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPHASE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3688, __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(4, 3603, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_outmacd); - __Pyx_GIVEREF((PyObject *)__pyx_v_outmacd); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outmacd)) != (0)) __PYX_ERR(4, 3603, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outmacdsignal); - __Pyx_GIVEREF((PyObject *)__pyx_v_outmacdsignal); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outmacdsignal)) != (0)) __PYX_ERR(4, 3603, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outmacdhist); - __Pyx_GIVEREF((PyObject *)__pyx_v_outmacdhist); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_outmacdhist)) != (0)) __PYX_ERR(4, 3603, __pyx_L1_error); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; + __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.MACDEXT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_DCPHASE", __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_outreal); __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); @@ -29554,16 +30785,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_232MACDEXT(CYTHON_UNUSED PyObject *__p /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_235MACDFIX(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_241HT_PHASOR(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_234MACDFIX, "MACDFIX(ndarray real, int signalperiod=-0x80000000)\n\nMACDFIX(real[, signalperiod=?])\n\nMoving Average Convergence/Divergence Fix 12/26 (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n signalperiod: 9\nOutputs:\n macd\n macdsignal\n macdhist"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_235MACDFIX = {"MACDFIX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_235MACDFIX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_234MACDFIX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_235MACDFIX(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_240HT_PHASOR, "HT_PHASOR(ndarray real)\n\nHT_PHASOR(real)\n\nHilbert Transform - Phasor Components (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n inphase\n quadrature"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_241HT_PHASOR = {"HT_PHASOR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_241HT_PHASOR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_240HT_PHASOR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_241HT_PHASOR(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -29571,18 +30802,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyArrayObject *__pyx_v_real = 0; - int __pyx_v_signalperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MACDFIX (wrapper)", 0); + __Pyx_RefNannySetupContext("HT_PHASOR (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -29592,62 +30822,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3605, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3691, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3605, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3605, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3691, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MACDFIX", 0) < (0)) __PYX_ERR(4, 3605, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HT_PHASOR", 0) < (0)) __PYX_ERR(4, 3691, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MACDFIX", 0, 1, 2, i); __PYX_ERR(4, 3605, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HT_PHASOR", 1, 1, 1, i); __PYX_ERR(4, 3691, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3605, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3605, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3691, __pyx_L3_error) } __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3607, __pyx_L3_error) - } else { - __pyx_v_signalperiod = ((int)((int)-2147483648)); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MACDFIX", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3605, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("HT_PHASOR", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3691, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MACDFIX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_PHASOR", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3607, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_234MACDFIX(__pyx_self, __pyx_v_real, __pyx_v_signalperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3693, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_240HT_PHASOR(__pyx_self, __pyx_v_real); /* function exit code */ goto __pyx_L0; @@ -29666,7 +30880,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_234MACDFIX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_signalperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_240HT_PHASOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -29674,9 +30888,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_234MACDFIX(CYTHON_UNUSED PyObject *__p TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outmacd = 0; - PyArrayObject *__pyx_v_outmacdsignal = 0; - PyArrayObject *__pyx_v_outmacdhist = 0; + PyArrayObject *__pyx_v_outinphase = 0; + PyArrayObject *__pyx_v_outquadrature = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -29684,56 +30897,48 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_234MACDFIX(CYTHON_UNUSED PyObject *__p int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("MACDFIX", 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(4, 3630, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3712, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3632, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3714, __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(4, 3635, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outmacd = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __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(4, 3636, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3717, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outmacdsignal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outinphase = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3637, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3718, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outmacdhist = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outquadrature = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_MACDFIX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmacd)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmacdsignal)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmacdhist)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_HT_PHASOR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinphase)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outquadrature)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDFIX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3639, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_PHASOR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3720, __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(4, 3640, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3721, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_outmacd); - __Pyx_GIVEREF((PyObject *)__pyx_v_outmacd); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outmacd)) != (0)) __PYX_ERR(4, 3640, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outmacdsignal); - __Pyx_GIVEREF((PyObject *)__pyx_v_outmacdsignal); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outmacdsignal)) != (0)) __PYX_ERR(4, 3640, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outmacdhist); - __Pyx_GIVEREF((PyObject *)__pyx_v_outmacdhist); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_outmacdhist)) != (0)) __PYX_ERR(4, 3640, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outinphase); + __Pyx_GIVEREF((PyObject *)__pyx_v_outinphase); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outinphase)) != (0)) __PYX_ERR(4, 3721, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outquadrature); + __Pyx_GIVEREF((PyObject *)__pyx_v_outquadrature); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outquadrature)) != (0)) __PYX_ERR(4, 3721, __pyx_L1_error); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; @@ -29742,12 +30947,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_234MACDFIX(CYTHON_UNUSED PyObject *__p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MACDFIX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_PHASOR", __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_outinphase); + __Pyx_XDECREF((PyObject *)__pyx_v_outquadrature); __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); @@ -29756,16 +30960,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_234MACDFIX(CYTHON_UNUSED PyObject *__p /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_237MAMA(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_243HT_SINE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_236MAMA, "MAMA(ndarray real, double fastlimit=-4e37, double slowlimit=-4e37)\n\nMAMA(real[, fastlimit=?, slowlimit=?])\n\nMESA Adaptive Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastlimit: 0.5\n slowlimit: 0.05\nOutputs:\n mama\n fama"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_237MAMA = {"MAMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_237MAMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_236MAMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_237MAMA(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_242HT_SINE, "HT_SINE(ndarray real)\n\nHT_SINE(real)\n\nHilbert Transform - SineWave (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n sine\n leadsine"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_243HT_SINE = {"HT_SINE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_243HT_SINE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_242HT_SINE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_243HT_SINE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -29773,19 +30977,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyArrayObject *__pyx_v_real = 0; - double __pyx_v_fastlimit; - double __pyx_v_slowlimit; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MAMA (wrapper)", 0); + __Pyx_RefNannySetupContext("HT_SINE (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -29795,75 +30997,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastlimit,&__pyx_mstate_global->__pyx_n_u_slowlimit,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3642, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3723, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3642, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3642, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3642, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3723, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MAMA", 0) < (0)) __PYX_ERR(4, 3642, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HT_SINE", 0) < (0)) __PYX_ERR(4, 3723, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MAMA", 0, 1, 3, i); __PYX_ERR(4, 3642, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HT_SINE", 1, 1, 1, i); __PYX_ERR(4, 3723, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3642, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3642, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3642, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3723, __pyx_L3_error) } __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_fastlimit = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fastlimit == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 3644, __pyx_L3_error) - } else { - __pyx_v_fastlimit = ((double)((double)-4e37)); - } - if (values[2]) { - __pyx_v_slowlimit = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_slowlimit == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 3644, __pyx_L3_error) - } else { - __pyx_v_slowlimit = ((double)((double)-4e37)); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MAMA", 0, 1, 3, __pyx_nargs); __PYX_ERR(4, 3642, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("HT_SINE", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3723, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MAMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_SINE", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3644, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_236MAMA(__pyx_self, __pyx_v_real, __pyx_v_fastlimit, __pyx_v_slowlimit); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3725, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_242HT_SINE(__pyx_self, __pyx_v_real); /* function exit code */ goto __pyx_L0; @@ -29882,7 +31055,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_236MAMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, double __pyx_v_fastlimit, double __pyx_v_slowlimit) { +static PyObject *__pyx_pf_5talib_7_ta_lib_242HT_SINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -29890,8 +31063,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_236MAMA(CYTHON_UNUSED PyObject *__pyx_ TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outmama = 0; - PyArrayObject *__pyx_v_outfama = 0; + PyArrayObject *__pyx_v_outsine = 0; + PyArrayObject *__pyx_v_outleadsine = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -29899,48 +31072,48 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_236MAMA(CYTHON_UNUSED PyObject *__pyx_ int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("MAMA", 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(4, 3666, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3744, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3668, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3746, __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_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(4, 3671, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3749, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outmama = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outsine = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3672, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3750, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outfama = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outleadsine = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_MAMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_fastlimit, __pyx_v_slowlimit, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmama)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outfama)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_HT_SINE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outsine)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outleadsine)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3674, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_SINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3752, __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(4, 3675, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3753, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_outmama); - __Pyx_GIVEREF((PyObject *)__pyx_v_outmama); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outmama)) != (0)) __PYX_ERR(4, 3675, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outfama); - __Pyx_GIVEREF((PyObject *)__pyx_v_outfama); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outfama)) != (0)) __PYX_ERR(4, 3675, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outsine); + __Pyx_GIVEREF((PyObject *)__pyx_v_outsine); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outsine)) != (0)) __PYX_ERR(4, 3753, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outleadsine); + __Pyx_GIVEREF((PyObject *)__pyx_v_outleadsine); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outleadsine)) != (0)) __PYX_ERR(4, 3753, __pyx_L1_error); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; @@ -29949,11 +31122,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_236MAMA(CYTHON_UNUSED PyObject *__pyx_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MAMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_SINE", __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_outsine); + __Pyx_XDECREF((PyObject *)__pyx_v_outleadsine); __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); @@ -29962,16 +31135,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_236MAMA(CYTHON_UNUSED PyObject *__pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_239MAVP(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_245HT_TRENDLINE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_238MAVP, "MAVP(ndarray real, ndarray periods, int minperiod=-0x80000000, int maxperiod=-0x80000000, int matype=0)\n\nMAVP(real, periods[, minperiod=?, maxperiod=?, matype=?])\n\nMoving average with variable period (Overlap Studies)\n\nInputs:\n real: (any ndarray)\n periods: (any ndarray)\nParameters:\n minperiod: 2\n maxperiod: 30\n matype: 0 (Simple Moving Average)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_239MAVP = {"MAVP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_239MAVP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_238MAVP}; -static PyObject *__pyx_pw_5talib_7_ta_lib_239MAVP(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_244HT_TRENDLINE, "HT_TRENDLINE(ndarray real)\n\nHT_TRENDLINE(real)\n\nHilbert Transform - Instantaneous Trendline (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_245HT_TRENDLINE = {"HT_TRENDLINE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_245HT_TRENDLINE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_244HT_TRENDLINE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_245HT_TRENDLINE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -29979,21 +31152,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyArrayObject *__pyx_v_real = 0; - PyArrayObject *__pyx_v_periods = 0; - int __pyx_v_minperiod; - int __pyx_v_maxperiod; - int __pyx_v_matype; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MAVP (wrapper)", 0); + __Pyx_RefNannySetupContext("HT_TRENDLINE (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -30003,96 +31172,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_periods,&__pyx_mstate_global->__pyx_n_u_minperiod,&__pyx_mstate_global->__pyx_n_u_maxperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3677, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3755, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 3677, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 3677, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3677, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3677, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3677, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3755, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MAVP", 0) < (0)) __PYX_ERR(4, 3677, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MAVP", 0, 2, 5, i); __PYX_ERR(4, 3677, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HT_TRENDLINE", 0) < (0)) __PYX_ERR(4, 3755, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HT_TRENDLINE", 1, 1, 1, i); __PYX_ERR(4, 3755, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 3677, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 3677, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3677, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3677, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3677, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3755, __pyx_L3_error) } __pyx_v_real = ((PyArrayObject *)values[0]); - __pyx_v_periods = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_minperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_minperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3679, __pyx_L3_error) - } else { - __pyx_v_minperiod = ((int)((int)-2147483648)); - } - if (values[3]) { - __pyx_v_maxperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_maxperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3679, __pyx_L3_error) - } else { - __pyx_v_maxperiod = ((int)((int)-2147483648)); - } - if (values[4]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3679, __pyx_L3_error) - } else { - __pyx_v_matype = ((int)((int)0)); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MAVP", 0, 2, 5, __pyx_nargs); __PYX_ERR(4, 3677, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("HT_TRENDLINE", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3755, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MAVP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_TRENDLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3679, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_periods), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "periods", 0))) __PYX_ERR(4, 3679, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_238MAVP(__pyx_self, __pyx_v_real, __pyx_v_periods, __pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3757, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_244HT_TRENDLINE(__pyx_self, __pyx_v_real); /* function exit code */ goto __pyx_L0; @@ -30111,7 +31230,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_238MAVP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_periods, int __pyx_v_minperiod, int __pyx_v_maxperiod, int __pyx_v_matype) { +static PyObject *__pyx_pf_5talib_7_ta_lib_244HT_TRENDLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -30123,43 +31242,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_238MAVP(CYTHON_UNUSED PyObject *__pyx_ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("MAVP", 0); + __Pyx_RefNannySetupContext("HT_TRENDLINE", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __Pyx_INCREF((PyObject *)__pyx_v_periods); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3701, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3774, __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(4, 3702, __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)-1L))) __PYX_ERR(4, 3703, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_periods))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3704, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3776, __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_MAVP_Lookback(__pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype)); + __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(4, 3707, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3779, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_periods)) + __pyx_v_begidx), __pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_HT_TRENDLINE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAVP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3709, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDLINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3781, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -30172,12 +31283,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_238MAVP(CYTHON_UNUSED PyObject *__pyx_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MAVP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_XDECREF((PyObject *)__pyx_v_periods); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -30185,16 +31295,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_238MAVP(CYTHON_UNUSED PyObject *__pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_241MAX(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_247HT_TRENDMODE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_240MAX, "MAX(ndarray real, int timeperiod=-0x80000000)\n\nMAX(real[, timeperiod=?])\n\nHighest value over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_241MAX = {"MAX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_241MAX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_240MAX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_241MAX(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_246HT_TRENDMODE, "HT_TRENDMODE(ndarray real)\n\nHT_TRENDMODE(real)\n\nHilbert Transform - Trend vs Cycle Mode (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n integer"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_247HT_TRENDMODE = {"HT_TRENDMODE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_247HT_TRENDMODE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_246HT_TRENDMODE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_247HT_TRENDMODE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -30202,18 +31312,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MAX (wrapper)", 0); + __Pyx_RefNannySetupContext("HT_TRENDMODE (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -30223,62 +31332,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3712, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3784, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3712, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3712, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3784, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MAX", 0) < (0)) __PYX_ERR(4, 3712, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HT_TRENDMODE", 0) < (0)) __PYX_ERR(4, 3784, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MAX", 0, 1, 2, i); __PYX_ERR(4, 3712, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HT_TRENDMODE", 1, 1, 1, i); __PYX_ERR(4, 3784, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3712, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3712, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3784, __pyx_L3_error) } __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3714, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MAX", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3712, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("HT_TRENDMODE", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3784, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MAX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_TRENDMODE", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3714, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_240MAX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3786, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_246HT_TRENDMODE(__pyx_self, __pyx_v_real); /* function exit code */ goto __pyx_L0; @@ -30297,7 +31390,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_240MAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_246HT_TRENDMODE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -30305,7 +31398,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_240MAX(CYTHON_UNUSED PyObject *__pyx_s TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outinteger = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -30313,47 +31406,47 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_240MAX(CYTHON_UNUSED PyObject *__pyx_s int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("MAX", 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(4, 3733, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3803, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3735, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3805, __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_v_lookback = (__pyx_v_begidx + TA_HT_TRENDMODE_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(4, 3738, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3808, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_MAX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_HT_TRENDMODE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3740, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDMODE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3810, __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); + __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.MAX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.HT_TRENDMODE", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); @@ -30362,35 +31455,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_240MAX(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_243MAXINDEX(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_249IMI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_242MAXINDEX, "MAXINDEX(ndarray real, int timeperiod=-0x80000000)\n\nMAXINDEX(real[, timeperiod=?])\n\nIndex of highest value over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_243MAXINDEX = {"MAXINDEX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_243MAXINDEX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_242MAXINDEX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_243MAXINDEX(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_248IMI, "IMI(ndarray open, ndarray close, int timeperiod=-0x80000000)\n\nIMI(open, close[, timeperiod=?])\n\nIntraday Momentum Index (Momentum Indicators)\n\nInputs:\n prices: ['open', 'close']\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_249IMI = {"IMI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_249IMI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_248IMI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_249IMI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_close = 0; int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MAXINDEX (wrapper)", 0); + __Pyx_RefNannySetupContext("IMI (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -30400,62 +31494,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3743, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3813, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3813, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3743, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3813, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3743, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3813, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MAXINDEX", 0) < (0)) __PYX_ERR(4, 3743, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MAXINDEX", 0, 1, 2, i); __PYX_ERR(4, 3743, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "IMI", 0) < (0)) __PYX_ERR(4, 3813, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("IMI", 0, 2, 3, i); __PYX_ERR(4, 3813, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3813, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3743, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3813, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3743, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3813, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3745, __pyx_L3_error) + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_close = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3815, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MAXINDEX", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3743, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("IMI", 0, 2, 3, __pyx_nargs); __PYX_ERR(4, 3813, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MAXINDEX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.IMI", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3745, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_242MAXINDEX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 3815, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 3815, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_248IMI(__pyx_self, __pyx_v_open, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -30474,7 +31576,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_242MAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_248IMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -30482,69 +31584,65 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_242MAXINDEX(CYTHON_UNUSED PyObject *__ TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; - int *__pyx_v_outinteger_data; - int __pyx_v_i; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_t_4; + 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("MAXINDEX", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("IMI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3764, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3834, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3835, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3766, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_open, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 3836, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3837, __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_MAXINDEX_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_IMI_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(4, 3769, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3840, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_MAXINDEX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_IMI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAXINDEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3771, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_IMI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3842, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_outinteger_data = ((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)); - - __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); + __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.MAXINDEX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.IMI", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -30552,24 +31650,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_242MAXINDEX(CYTHON_UNUSED PyObject *__ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_245MEDPRICE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_251KAMA(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_244MEDPRICE, "MEDPRICE(ndarray high, ndarray low)\n\nMEDPRICE(high, low)\n\nMedian Price (Price Transform)\n\nInputs:\n prices: ['high', 'low']\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_245MEDPRICE = {"MEDPRICE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_245MEDPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_244MEDPRICE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_245MEDPRICE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_250KAMA, "KAMA(ndarray real, int timeperiod=-0x80000000)\n\nKAMA(real[, timeperiod=?])\n\nKaufman Adaptive Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_251KAMA = {"KAMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_251KAMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_250KAMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_251KAMA(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -30580,7 +31678,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MEDPRICE (wrapper)", 0); + __Pyx_RefNannySetupContext("KAMA (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -30590,54 +31688,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3777, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3845, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3777, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3845, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3777, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3845, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MEDPRICE", 0) < (0)) __PYX_ERR(4, 3777, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MEDPRICE", 1, 2, 2, i); __PYX_ERR(4, 3777, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "KAMA", 0) < (0)) __PYX_ERR(4, 3845, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("KAMA", 0, 1, 2, i); __PYX_ERR(4, 3845, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3777, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3777, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3845, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3845, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3847, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MEDPRICE", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 3777, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("KAMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3845, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MEDPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KAMA", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 3779, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 3779, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_244MEDPRICE(__pyx_self, __pyx_v_high, __pyx_v_low); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3847, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_250KAMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -30656,7 +31762,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_244MEDPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low) { +static PyObject *__pyx_pf_5talib_7_ta_lib_250KAMA(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; @@ -30668,43 +31774,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_244MEDPRICE(CYTHON_UNUSED PyObject *__ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + npy_int __pyx_t_2; 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(4, 3796, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("KAMA", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3797, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3866, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 3798, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3799, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3868, __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_MEDPRICE_Lookback()); + __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(4, 3802, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3871, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_KAMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MEDPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3804, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KAMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3873, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -30717,12 +31815,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_244MEDPRICE(CYTHON_UNUSED PyObject *__ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MEDPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -30730,16 +31827,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_244MEDPRICE(CYTHON_UNUSED PyObject *__ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_247MFI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_253KC(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_246MFI, "MFI(ndarray high, ndarray low, ndarray close, ndarray volume, int timeperiod=-0x80000000)\n\nMFI(high, low, close, volume[, timeperiod=?])\n\nMoney Flow Index (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low', 'close', 'volume']\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_247MFI = {"MFI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_247MFI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_246MFI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_247MFI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_252KC, "KC(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000, int atrperiod=-0x80000000, double nbdev=-4e37)\n\nKC(high, low, close[, timeperiod=?, atrperiod=?, nbdev=?])\n\nKeltner Channels (Overlap Studies)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n timeperiod: 20\n atrperiod: 10\n nbdev: 2.0\nOutputs:\n upperband\n middleband\n lowerband"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_253KC = {"KC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_253KC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_252KC}; +static PyObject *__pyx_pw_5talib_7_ta_lib_253KC(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -30749,19 +31846,20 @@ 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_v_atrperiod; + double __pyx_v_nbdev; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[6] = {0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MFI (wrapper)", 0); + __Pyx_RefNannySetupContext("KC (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -30771,54 +31869,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_atrperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3807, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3876, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 3876, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 3807, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 3876, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 3807, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 3876, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3807, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3876, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3807, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3876, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3807, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3876, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MFI", 0) < (0)) __PYX_ERR(4, 3807, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MFI", 0, 4, 5, i); __PYX_ERR(4, 3807, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "KC", 0) < (0)) __PYX_ERR(4, 3876, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("KC", 0, 3, 6, i); __PYX_ERR(4, 3876, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 3876, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 3807, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 3876, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 3807, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 3876, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3807, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3876, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3807, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3876, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3807, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3876, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -30826,31 +31934,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_high = ((PyArrayObject *)values[0]); __pyx_v_low = ((PyArrayObject *)values[1]); __pyx_v_close = ((PyArrayObject *)values[2]); - __pyx_v_volume = ((PyArrayObject *)values[3]); - if (values[4]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3809, __pyx_L3_error) + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3878, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } + if (values[4]) { + __pyx_v_atrperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_atrperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3878, __pyx_L3_error) + } else { + __pyx_v_atrperiod = ((int)((int)-2147483648)); + } + if (values[5]) { + __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 3878, __pyx_L3_error) + } else { + __pyx_v_nbdev = ((double)((double)-4e37)); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MFI", 0, 4, 5, __pyx_nargs); __PYX_ERR(4, 3807, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("KC", 0, 3, 6, __pyx_nargs); __PYX_ERR(4, 3876, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MFI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KC", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 3809, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 3809, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 3809, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(4, 3809, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_246MFI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 3878, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 3878, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 3878, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_252KC(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod, __pyx_v_atrperiod, __pyx_v_nbdev); /* function exit code */ goto __pyx_L0; @@ -30869,7 +31985,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_246MFI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_252KC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod, int __pyx_v_atrperiod, double __pyx_v_nbdev) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -30877,7 +31993,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_246MFI(CYTHON_UNUSED PyObject *__pyx_s TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outrealupperband = 0; + PyArrayObject *__pyx_v_outrealmiddleband = 0; + PyArrayObject *__pyx_v_outreallowerband = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -30886,70 +32004,86 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_246MFI(CYTHON_UNUSED PyObject *__pyx_s int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("MFI", 0); + __Pyx_RefNannySetupContext("KC", 0); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __Pyx_INCREF((PyObject *)__pyx_v_volume); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3828, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3903, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3829, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3904, __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(4, 3830, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3905, __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(4, 3831, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 3832, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 3906, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3833, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3907, __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_v_lookback = (__pyx_v_begidx + TA_KC_Lookback(__pyx_v_timeperiod, __pyx_v_atrperiod, __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(4, 3836, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3910, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outrealupperband = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_MFI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3911, __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(4, 3912, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreallowerband = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_KC(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_atrperiod, __pyx_v_nbdev, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outrealupperband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outrealmiddleband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreallowerband)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MFI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3838, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3914, __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); + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3915, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_outrealupperband); + __Pyx_GIVEREF((PyObject *)__pyx_v_outrealupperband); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outrealupperband)) != (0)) __PYX_ERR(4, 3915, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outrealmiddleband); + __Pyx_GIVEREF((PyObject *)__pyx_v_outrealmiddleband); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outrealmiddleband)) != (0)) __PYX_ERR(4, 3915, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outreallowerband); + __Pyx_GIVEREF((PyObject *)__pyx_v_outreallowerband); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_outreallowerband)) != (0)) __PYX_ERR(4, 3915, __pyx_L1_error); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; 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_AddTraceback("talib._ta_lib.KC", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_outrealupperband); + __Pyx_XDECREF((PyObject *)__pyx_v_outrealmiddleband); + __Pyx_XDECREF((PyObject *)__pyx_v_outreallowerband); __Pyx_XDECREF((PyObject *)__pyx_v_high); __Pyx_XDECREF((PyObject *)__pyx_v_low); __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XDECREF((PyObject *)__pyx_v_volume); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -30957,35 +32091,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_246MFI(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_249MIDPOINT(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_255KDJ(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_248MIDPOINT, "MIDPOINT(ndarray real, int timeperiod=-0x80000000)\n\nMIDPOINT(real[, timeperiod=?])\n\nMidPoint over period (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_249MIDPOINT = {"MIDPOINT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_249MIDPOINT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_248MIDPOINT}; -static PyObject *__pyx_pw_5talib_7_ta_lib_249MIDPOINT(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_254KDJ, "KDJ(ndarray high, ndarray low, ndarray close, int fastk_period=-0x80000000, int slowk_period=-0x80000000, int slowk_matype=13, int slowd_period=-0x80000000, int slowd_matype=13)\n\nKDJ(high, low, close[, fastk_period=?, slowk_period=?, slowk_matype=?, slowd_period=?, slowd_matype=?])\n\nKDJ Stochastic (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n fastk_period: 9\n slowk_period: 3\n slowk_matype: 13 (Wilder's Smoothed Moving Average)\n slowd_period: 3\n slowd_matype: 13 (Wilder's Smoothed Moving Average)\nOutputs:\n k\n d\n j"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_255KDJ = {"KDJ", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_255KDJ, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_254KDJ}; +static PyObject *__pyx_pw_5talib_7_ta_lib_255KDJ(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_fastk_period; + int __pyx_v_slowk_period; + int __pyx_v_slowk_matype; + int __pyx_v_slowd_period; + int __pyx_v_slowd_matype; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[8] = {0,0,0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MIDPOINT (wrapper)", 0); + __Pyx_RefNannySetupContext("KDJ (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -30995,62 +32135,130 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_slowk_period,&__pyx_mstate_global->__pyx_n_u_slowk_matype,&__pyx_mstate_global->__pyx_n_u_slowd_period,&__pyx_mstate_global->__pyx_n_u_slowd_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3841, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3917, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 8: + values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(4, 3917, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(4, 3917, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 3917, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 3917, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 3917, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3917, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3841, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3917, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3841, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3917, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MIDPOINT", 0) < (0)) __PYX_ERR(4, 3841, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MIDPOINT", 0, 1, 2, i); __PYX_ERR(4, 3841, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "KDJ", 0) < (0)) __PYX_ERR(4, 3917, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("KDJ", 0, 3, 8, i); __PYX_ERR(4, 3917, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3841, __pyx_L3_error) + case 8: + values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(4, 3917, __pyx_L3_error) CYTHON_FALLTHROUGH; - case 1: + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(4, 3917, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 3917, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 3917, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 3917, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3917, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3917, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3841, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3917, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3843, __pyx_L3_error) + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3919, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + __pyx_v_fastk_period = ((int)((int)-2147483648)); + } + if (values[4]) { + __pyx_v_slowk_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3919, __pyx_L3_error) + } else { + __pyx_v_slowk_period = ((int)((int)-2147483648)); + } + if (values[5]) { + __pyx_v_slowk_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowk_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3919, __pyx_L3_error) + } else { + __pyx_v_slowk_matype = ((int)((int)13)); + } + if (values[6]) { + __pyx_v_slowd_period = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_slowd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3919, __pyx_L3_error) + } else { + __pyx_v_slowd_period = ((int)((int)-2147483648)); + } + if (values[7]) { + __pyx_v_slowd_matype = __Pyx_PyLong_As_int(values[7]); if (unlikely((__pyx_v_slowd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3919, __pyx_L3_error) + } else { + __pyx_v_slowd_matype = ((int)((int)13)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MIDPOINT", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3841, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("KDJ", 0, 3, 8, __pyx_nargs); __PYX_ERR(4, 3917, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MIDPOINT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KDJ", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3843, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_248MIDPOINT(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 3919, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 3919, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 3919, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_254KDJ(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype); /* function exit code */ goto __pyx_L0; @@ -31069,7 +32277,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_248MIDPOINT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_254KDJ(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_slowk_period, int __pyx_v_slowk_matype, int __pyx_v_slowd_period, int __pyx_v_slowd_matype) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -31077,56 +32285,97 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_248MIDPOINT(CYTHON_UNUSED PyObject *__ TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outk = 0; + PyArrayObject *__pyx_v_outd = 0; + PyArrayObject *__pyx_v_outj = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + 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("MIDPOINT", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("KDJ", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3862, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3946, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3947, __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_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3864, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3948, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 3949, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3950, __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_MIDPOINT_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_KDJ_Lookback(__pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3867, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3953, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outk = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_MIDPOINT(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3954, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outd = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPOINT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3869, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3955, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outj = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_KDJ(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outk)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outd)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outj)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KDJ, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3957, __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); + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3958, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_outk); + __Pyx_GIVEREF((PyObject *)__pyx_v_outk); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outk)) != (0)) __PYX_ERR(4, 3958, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outd); + __Pyx_GIVEREF((PyObject *)__pyx_v_outd); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outd)) != (0)) __PYX_ERR(4, 3958, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outj); + __Pyx_GIVEREF((PyObject *)__pyx_v_outj); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_outj)) != (0)) __PYX_ERR(4, 3958, __pyx_L1_error); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MIDPOINT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.KDJ", __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_outk); + __Pyx_XDECREF((PyObject *)__pyx_v_outd); + __Pyx_XDECREF((PyObject *)__pyx_v_outj); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -31134,36 +32383,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_248MIDPOINT(CYTHON_UNUSED PyObject *__ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_251MIDPRICE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_257LINEARREG(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_250MIDPRICE, "MIDPRICE(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nMIDPRICE(high, low[, timeperiod=?])\n\nMidpoint Price over period (Overlap Studies)\n\nInputs:\n prices: ['high', 'low']\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_251MIDPRICE = {"MIDPRICE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_251MIDPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_250MIDPRICE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_251MIDPRICE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_256LINEARREG, "LINEARREG(ndarray real, int timeperiod=-0x80000000)\n\nLINEARREG(real[, timeperiod=?])\n\nLinear Regression (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_257LINEARREG = {"LINEARREG", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_257LINEARREG, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_256LINEARREG}; +static PyObject *__pyx_pw_5talib_7_ta_lib_257LINEARREG(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_real = 0; int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MIDPRICE (wrapper)", 0); + __Pyx_RefNannySetupContext("LINEARREG (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -31173,70 +32421,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3872, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3960, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3872, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3872, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3960, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3872, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3960, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MIDPRICE", 0) < (0)) __PYX_ERR(4, 3872, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MIDPRICE", 0, 2, 3, i); __PYX_ERR(4, 3872, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "LINEARREG", 0) < (0)) __PYX_ERR(4, 3960, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("LINEARREG", 0, 1, 2, i); __PYX_ERR(4, 3960, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3872, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3872, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3960, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3872, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3960, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3874, __pyx_L3_error) + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3962, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MIDPRICE", 0, 2, 3, __pyx_nargs); __PYX_ERR(4, 3872, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("LINEARREG", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3960, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MIDPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 3874, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 3874, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_250MIDPRICE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3962, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_256LINEARREG(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -31255,7 +32495,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_250MIDPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_256LINEARREG(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; @@ -31267,43 +32507,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_250MIDPRICE(CYTHON_UNUSED PyObject *__ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + npy_int __pyx_t_2; 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(4, 3893, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("LINEARREG", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3894, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3981, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 3895, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3896, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3983, __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_MIDPRICE_Lookback(__pyx_v_timeperiod)); + __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(4, 3899, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3986, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_LINEARREG(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3901, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3988, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -31316,12 +32548,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_250MIDPRICE(CYTHON_UNUSED PyObject *__ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MIDPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -31329,16 +32560,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_250MIDPRICE(CYTHON_UNUSED PyObject *__ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_253MIN(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_259LINEARREG_ANGLE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_252MIN, "MIN(ndarray real, int timeperiod=-0x80000000)\n\nMIN(real[, timeperiod=?])\n\nLowest value over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_253MIN = {"MIN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_253MIN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_252MIN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_253MIN(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_258LINEARREG_ANGLE, "LINEARREG_ANGLE(ndarray real, int timeperiod=-0x80000000)\n\nLINEARREG_ANGLE(real[, timeperiod=?])\n\nLinear Regression Angle (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_259LINEARREG_ANGLE = {"LINEARREG_ANGLE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_259LINEARREG_ANGLE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_258LINEARREG_ANGLE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_259LINEARREG_ANGLE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -31357,7 +32588,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MIN (wrapper)", 0); + __Pyx_RefNannySetupContext("LINEARREG_ANGLE (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -31369,60 +32600,60 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3904, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3991, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3904, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3991, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3904, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3991, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MIN", 0) < (0)) __PYX_ERR(4, 3904, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "LINEARREG_ANGLE", 0) < (0)) __PYX_ERR(4, 3991, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MIN", 0, 1, 2, i); __PYX_ERR(4, 3904, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("LINEARREG_ANGLE", 0, 1, 2, i); __PYX_ERR(4, 3991, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3904, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3991, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3904, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3991, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3906, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3993, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MIN", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3904, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("LINEARREG_ANGLE", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3991, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MIN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_ANGLE", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3906, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_252MIN(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3993, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_258LINEARREG_ANGLE(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -31441,7 +32672,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_252MIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_258LINEARREG_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; @@ -31457,31 +32688,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_252MIN(CYTHON_UNUSED PyObject *__pyx_s int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("MIN", 0); + __Pyx_RefNannySetupContext("LINEARREG_ANGLE", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3925, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4012, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3927, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4014, __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_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(4, 3930, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4017, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_LINEARREG_ANGLE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3932, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_ANGLE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4019, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -31494,7 +32725,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_252MIN(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MIN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_ANGLE", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -31506,16 +32737,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_252MIN(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_255MININDEX(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_261LINEARREG_INTERCEPT(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_254MININDEX, "MININDEX(ndarray real, int timeperiod=-0x80000000)\n\nMININDEX(real[, timeperiod=?])\n\nIndex of lowest value over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_255MININDEX = {"MININDEX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_255MININDEX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_254MININDEX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_255MININDEX(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_260LINEARREG_INTERCEPT, "LINEARREG_INTERCEPT(ndarray real, int timeperiod=-0x80000000)\n\nLINEARREG_INTERCEPT(real[, timeperiod=?])\n\nLinear Regression Intercept (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_261LINEARREG_INTERCEPT = {"LINEARREG_INTERCEPT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_261LINEARREG_INTERCEPT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_260LINEARREG_INTERCEPT}; +static PyObject *__pyx_pw_5talib_7_ta_lib_261LINEARREG_INTERCEPT(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -31534,7 +32765,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MININDEX (wrapper)", 0); + __Pyx_RefNannySetupContext("LINEARREG_INTERCEPT (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -31546,60 +32777,60 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3935, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4022, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3935, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4022, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3935, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4022, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MININDEX", 0) < (0)) __PYX_ERR(4, 3935, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "LINEARREG_INTERCEPT", 0) < (0)) __PYX_ERR(4, 4022, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MININDEX", 0, 1, 2, i); __PYX_ERR(4, 3935, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("LINEARREG_INTERCEPT", 0, 1, 2, i); __PYX_ERR(4, 4022, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3935, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4022, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3935, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4022, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3937, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4024, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MININDEX", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3935, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("LINEARREG_INTERCEPT", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4022, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MININDEX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_INTERCEPT", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3937, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_254MININDEX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4024, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_260LINEARREG_INTERCEPT(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -31618,7 +32849,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_254MININDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_260LINEARREG_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; @@ -31626,68 +32857,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_254MININDEX(CYTHON_UNUSED PyObject *__ TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; - int *__pyx_v_outinteger_data; - int __pyx_v_i; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; 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_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(4, 3956, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4043, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3958, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4045, __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_v_lookback = (__pyx_v_begidx + TA_LINEARREG_INTERCEPT_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(4, 3961, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4048, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_MININDEX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_LINEARREG_INTERCEPT(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MININDEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3963, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_INTERCEPT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4050, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_outinteger_data = ((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)); - - __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); + __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.MININDEX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_INTERCEPT", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); @@ -31696,16 +32914,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_254MININDEX(CYTHON_UNUSED PyObject *__ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_257MINMAX(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_263LINEARREG_SLOPE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_256MINMAX, "MINMAX(ndarray real, int timeperiod=-0x80000000)\n\nMINMAX(real[, timeperiod=?])\n\nLowest and highest values over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n min\n max"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_257MINMAX = {"MINMAX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_257MINMAX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_256MINMAX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_257MINMAX(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_262LINEARREG_SLOPE, "LINEARREG_SLOPE(ndarray real, int timeperiod=-0x80000000)\n\nLINEARREG_SLOPE(real[, timeperiod=?])\n\nLinear Regression Slope (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_263LINEARREG_SLOPE = {"LINEARREG_SLOPE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_263LINEARREG_SLOPE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_262LINEARREG_SLOPE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_263LINEARREG_SLOPE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -31724,7 +32942,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MINMAX (wrapper)", 0); + __Pyx_RefNannySetupContext("LINEARREG_SLOPE (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -31736,60 +32954,60 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3969, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4053, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3969, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4053, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3969, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4053, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MINMAX", 0) < (0)) __PYX_ERR(4, 3969, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "LINEARREG_SLOPE", 0) < (0)) __PYX_ERR(4, 4053, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MINMAX", 0, 1, 2, i); __PYX_ERR(4, 3969, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("LINEARREG_SLOPE", 0, 1, 2, i); __PYX_ERR(4, 4053, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3969, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4053, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3969, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4053, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3971, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4055, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MINMAX", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3969, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("LINEARREG_SLOPE", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4053, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MINMAX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_SLOPE", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3971, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_256MINMAX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4055, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_262LINEARREG_SLOPE(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -31808,7 +33026,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_256MINMAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_262LINEARREG_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; @@ -31816,8 +33034,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_256MINMAX(CYTHON_UNUSED PyObject *__py TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outmin = 0; - PyArrayObject *__pyx_v_outmax = 0; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -31825,61 +33042,47 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_256MINMAX(CYTHON_UNUSED PyObject *__py int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("MINMAX", 0); + __Pyx_RefNannySetupContext("LINEARREG_SLOPE", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3992, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4074, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3994, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4076, __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(4, 3997, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outmin = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __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(4, 3998, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4079, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outmax = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_MINMAX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmin)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmax)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_LINEARREG_SLOPE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4000, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_SLOPE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4081, __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(4, 4001, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_outmin); - __Pyx_GIVEREF((PyObject *)__pyx_v_outmin); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outmin)) != (0)) __PYX_ERR(4, 4001, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outmax); - __Pyx_GIVEREF((PyObject *)__pyx_v_outmax); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outmax)) != (0)) __PYX_ERR(4, 4001, __pyx_L1_error); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; + __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.MINMAX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_SLOPE", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_outmin); - __Pyx_XDECREF((PyObject *)__pyx_v_outmax); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); @@ -31888,16 +33091,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_256MINMAX(CYTHON_UNUSED PyObject *__py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_259MINMAXINDEX(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_265LN(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_258MINMAXINDEX, "MINMAXINDEX(ndarray real, int timeperiod=-0x80000000)\n\nMINMAXINDEX(real[, timeperiod=?])\n\nIndexes of lowest and highest values over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n minidx\n maxidx"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_259MINMAXINDEX = {"MINMAXINDEX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_259MINMAXINDEX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_258MINMAXINDEX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_259MINMAXINDEX(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_264LN, "LN(ndarray real)\n\nLN(real)\n\nVector Log Natural (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_265LN = {"LN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_265LN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_264LN}; +static PyObject *__pyx_pw_5talib_7_ta_lib_265LN(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -31905,18 +33108,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MINMAXINDEX (wrapper)", 0); + __Pyx_RefNannySetupContext("LN (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -31926,62 +33128,206 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4003, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4084, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4003, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4003, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4084, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MINMAXINDEX", 0) < (0)) __PYX_ERR(4, 4003, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "LN", 0) < (0)) __PYX_ERR(4, 4084, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MINMAXINDEX", 0, 1, 2, i); __PYX_ERR(4, 4003, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("LN", 1, 1, 1, i); __PYX_ERR(4, 4084, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4084, __pyx_L3_error) + } + __pyx_v_real = ((PyArrayObject *)values[0]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("LN", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 4084, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.LN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4086, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_264LN(__pyx_self, __pyx_v_real); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_264LN(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(4, 4103, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4105, __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(4, 4108, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4110, __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_267LOG10(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_266LOG10, "LOG10(ndarray real)\n\nLOG10(real)\n\nVector Log10 (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_267LOG10 = {"LOG10", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_267LOG10, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_266LOG10}; +static PyObject *__pyx_pw_5talib_7_ta_lib_267LOG10(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("LOG10 (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4113, __pyx_L3_error) + if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4003, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4003, __pyx_L3_error) - break; + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4113, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; default: goto __pyx_L5_argtuple_error; } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4005, __pyx_L3_error) + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "LOG10", 0) < (0)) __PYX_ERR(4, 4113, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("LOG10", 1, 1, 1, i); __PYX_ERR(4, 4113, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4113, __pyx_L3_error) } + __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MINMAXINDEX", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4003, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("LOG10", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 4113, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MINMAXINDEX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LOG10", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4005, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_258MINMAXINDEX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4115, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_266LOG10(__pyx_self, __pyx_v_real); /* function exit code */ goto __pyx_L0; @@ -32000,7 +33346,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_258MINMAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_266LOG10(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -32008,93 +33354,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_258MINMAXINDEX(CYTHON_UNUSED PyObject TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outminidx = 0; - PyArrayObject *__pyx_v_outmaxidx = 0; - int *__pyx_v_outminidx_data; - int __pyx_v_i; - int *__pyx_v_outmaxidx_data; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; 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_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(4, 4026, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4132, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4028, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4134, __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(4, 4031, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outminidx = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_lookback = (__pyx_v_begidx + TA_LOG10_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(4, 4032, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outmaxidx = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_MINMAXINDEX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outminidx)) + __pyx_v_lookback), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmaxidx)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_LOG10(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAXINDEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4034, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LOG10, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_outminidx_data = ((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outminidx)); - - __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_f_5numpy_7ndarray_4data_data(__pyx_v_outmaxidx)); - - __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(4, 4041, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_outminidx); - __Pyx_GIVEREF((PyObject *)__pyx_v_outminidx); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outminidx)) != (0)) __PYX_ERR(4, 4041, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outmaxidx); - __Pyx_GIVEREF((PyObject *)__pyx_v_outmaxidx); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outmaxidx)) != (0)) __PYX_ERR(4, 4041, __pyx_L1_error); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; + __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.MINMAXINDEX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.LOG10", __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_outreal); __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); @@ -32103,37 +33411,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_258MINMAXINDEX(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_261MINUS_DI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_269MA(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_260MINUS_DI, "MINUS_DI(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nMINUS_DI(high, low, close[, timeperiod=?])\n\nMinus Directional Indicator (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_261MINUS_DI = {"MINUS_DI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_261MINUS_DI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_260MINUS_DI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_261MINUS_DI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_268MA, "MA(ndarray real, int timeperiod=-0x80000000, int matype=0)\n\nMA(real[, timeperiod=?, matype=?])\n\nMoving average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\n matype: 0 (Simple Moving Average)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_269MA = {"MA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_269MA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_268MA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_269MA(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + PyArrayObject *__pyx_v_real = 0; int __pyx_v_timeperiod; + int __pyx_v_matype; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MINUS_DI (wrapper)", 0); + __Pyx_RefNannySetupContext("MA (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -32143,78 +33450,75 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4043, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4142, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4043, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4043, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4142, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4043, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4142, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4043, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4142, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MINUS_DI", 0) < (0)) __PYX_ERR(4, 4043, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MINUS_DI", 0, 3, 4, i); __PYX_ERR(4, 4043, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MA", 0) < (0)) __PYX_ERR(4, 4142, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MA", 0, 1, 3, i); __PYX_ERR(4, 4142, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4043, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4043, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4142, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4043, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4142, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4043, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4142, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4045, __pyx_L3_error) + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4144, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } + if (values[2]) { + __pyx_v_matype = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4144, __pyx_L3_error) + } else { + __pyx_v_matype = ((int)((int)0)); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MINUS_DI", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 4043, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MA", 0, 1, 3, __pyx_nargs); __PYX_ERR(4, 4142, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MINUS_DI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MA", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 4045, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 4045, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 4045, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_260MINUS_DI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4144, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_268MA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_matype); /* function exit code */ goto __pyx_L0; @@ -32233,7 +33537,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_260MINUS_DI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_268MA(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; @@ -32245,49 +33549,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_260MINUS_DI(CYTHON_UNUSED PyObject *__ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + npy_int __pyx_t_2; 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(4, 4064, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4065, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("MA", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4066, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4164, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 4067, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4068, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4166, __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_MINUS_DI_Lookback(__pyx_v_timeperiod)); + __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(4, 4071, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4169, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4073, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4171, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -32300,13 +33590,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_260MINUS_DI(CYTHON_UNUSED PyObject *__ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MINUS_DI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MA", __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_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -32314,36 +33602,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_260MINUS_DI(CYTHON_UNUSED PyObject *__ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_263MINUS_DM(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_271MACD(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_262MINUS_DM, "MINUS_DM(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nMINUS_DM(high, low[, timeperiod=?])\n\nMinus Directional Movement (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low']\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_263MINUS_DM = {"MINUS_DM", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_263MINUS_DM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_262MINUS_DM}; -static PyObject *__pyx_pw_5talib_7_ta_lib_263MINUS_DM(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_270MACD, "MACD(ndarray real, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int signalperiod=-0x80000000)\n\nMACD(real[, fastperiod=?, slowperiod=?, signalperiod=?])\n\nMoving Average Convergence/Divergence (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastperiod: 12\n slowperiod: 26\n signalperiod: 9\nOutputs:\n macd\n macdsignal\n macdhist"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_271MACD = {"MACD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_271MACD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_270MACD}; +static PyObject *__pyx_pw_5talib_7_ta_lib_271MACD(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - int __pyx_v_timeperiod; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + int __pyx_v_signalperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MINUS_DM (wrapper)", 0); + __Pyx_RefNannySetupContext("MACD (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -32353,70 +33642,88 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4076, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4174, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4174, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4076, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4174, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4076, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4174, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4076, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4174, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MINUS_DM", 0) < (0)) __PYX_ERR(4, 4076, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MINUS_DM", 0, 2, 3, i); __PYX_ERR(4, 4076, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MACD", 0) < (0)) __PYX_ERR(4, 4174, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MACD", 0, 1, 4, i); __PYX_ERR(4, 4174, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4174, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4076, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4174, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4076, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4174, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4076, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4174, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4176, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)((int)-2147483648)); + } if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4078, __pyx_L3_error) + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4176, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + __pyx_v_slowperiod = ((int)((int)-2147483648)); + } + if (values[3]) { + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4176, __pyx_L3_error) + } else { + __pyx_v_signalperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MINUS_DM", 0, 2, 3, __pyx_nargs); __PYX_ERR(4, 4076, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MACD", 0, 1, 4, __pyx_nargs); __PYX_ERR(4, 4174, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MINUS_DM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MACD", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 4078, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 4078, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_262MINUS_DM(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4176, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_270MACD(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod); /* function exit code */ goto __pyx_L0; @@ -32435,7 +33742,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_262MINUS_DM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_270MACD(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; @@ -32443,65 +33750,81 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_262MINUS_DM(CYTHON_UNUSED PyObject *__ TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outmacd = 0; + PyArrayObject *__pyx_v_outmacdsignal = 0; + PyArrayObject *__pyx_v_outmacdhist = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + npy_int __pyx_t_2; 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(4, 4097, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 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_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4098, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4201, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 4099, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4100, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4203, __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_MINUS_DM_Lookback(__pyx_v_timeperiod)); + __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(4, 4103, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4206, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outmacd = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_MINUS_DM(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4207, __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(4, 4208, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outmacdhist = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4105, __pyx_L1_error) + __pyx_v_retCode = TA_MACD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmacd)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmacdsignal)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmacdhist)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4210, __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); + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4211, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_outmacd); + __Pyx_GIVEREF((PyObject *)__pyx_v_outmacd); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outmacd)) != (0)) __PYX_ERR(4, 4211, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outmacdsignal); + __Pyx_GIVEREF((PyObject *)__pyx_v_outmacdsignal); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outmacdsignal)) != (0)) __PYX_ERR(4, 4211, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outmacdhist); + __Pyx_GIVEREF((PyObject *)__pyx_v_outmacdhist); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_outmacdhist)) != (0)) __PYX_ERR(4, 4211, __pyx_L1_error); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; 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_AddTraceback("talib._ta_lib.MACD", __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_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; @@ -32509,16 +33832,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_262MINUS_DM(CYTHON_UNUSED PyObject *__ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_265MOM(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_273MACDEXT(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_264MOM, "MOM(ndarray real, int timeperiod=-0x80000000)\n\nMOM(real[, timeperiod=?])\n\nMomentum (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_265MOM = {"MOM", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_265MOM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_264MOM}; -static PyObject *__pyx_pw_5talib_7_ta_lib_265MOM(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_272MACDEXT, "MACDEXT(ndarray real, int fastperiod=-0x80000000, int fastmatype=0, int slowperiod=-0x80000000, int slowmatype=0, int signalperiod=-0x80000000, int signalmatype=0)\n\nMACDEXT(real[, fastperiod=?, fastmatype=?, slowperiod=?, slowmatype=?, signalperiod=?, signalmatype=?])\n\nMACD with controllable MA type (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastperiod: 12\n fastmatype: 0 (Simple Moving Average)\n slowperiod: 26\n slowmatype: 0 (Simple Moving Average)\n signalperiod: 9\n signalmatype: 0 (Simple Moving Average)\nOutputs:\n macd\n macdsignal\n macdhist"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_273MACDEXT = {"MACDEXT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_273MACDEXT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_272MACDEXT}; +static PyObject *__pyx_pw_5talib_7_ta_lib_273MACDEXT(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -32526,18 +33849,23 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + int __pyx_v_fastperiod; + int __pyx_v_fastmatype; + int __pyx_v_slowperiod; + int __pyx_v_slowmatype; + int __pyx_v_signalperiod; + int __pyx_v_signalmatype; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[7] = {0,0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MOM (wrapper)", 0); + __Pyx_RefNannySetupContext("MACDEXT (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -32547,62 +33875,127 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_fastmatype,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_slowmatype,&__pyx_mstate_global->__pyx_n_u_signalperiod,&__pyx_mstate_global->__pyx_n_u_signalmatype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4108, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4213, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(4, 4213, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 4213, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 4213, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4213, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4213, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4108, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4213, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4108, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4213, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MOM", 0) < (0)) __PYX_ERR(4, 4108, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MACDEXT", 0) < (0)) __PYX_ERR(4, 4213, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MOM", 0, 1, 2, i); __PYX_ERR(4, 4108, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MACDEXT", 0, 1, 7, i); __PYX_ERR(4, 4213, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(4, 4213, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 4213, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 4213, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4213, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4213, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4108, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4213, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4108, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4213, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4110, __pyx_L3_error) + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4215, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + __pyx_v_fastperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_fastmatype = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4215, __pyx_L3_error) + } else { + __pyx_v_fastmatype = ((int)((int)0)); + } + if (values[3]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4215, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)((int)-2147483648)); + } + if (values[4]) { + __pyx_v_slowmatype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4215, __pyx_L3_error) + } else { + __pyx_v_slowmatype = ((int)((int)0)); + } + if (values[5]) { + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4215, __pyx_L3_error) + } else { + __pyx_v_signalperiod = ((int)((int)-2147483648)); + } + if (values[6]) { + __pyx_v_signalmatype = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_signalmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4215, __pyx_L3_error) + } else { + __pyx_v_signalmatype = ((int)((int)0)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MOM", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4108, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MACDEXT", 0, 1, 7, __pyx_nargs); __PYX_ERR(4, 4213, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MOM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4110, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_264MOM(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4215, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_272MACDEXT(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_fastmatype, __pyx_v_slowperiod, __pyx_v_slowmatype, __pyx_v_signalperiod, __pyx_v_signalmatype); /* function exit code */ goto __pyx_L0; @@ -32621,7 +34014,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_264MOM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_272MACDEXT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_fastmatype, int __pyx_v_slowperiod, int __pyx_v_slowmatype, int __pyx_v_signalperiod, int __pyx_v_signalmatype) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -32629,7 +34022,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_264MOM(CYTHON_UNUSED PyObject *__pyx_s TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outmacd = 0; + PyArrayObject *__pyx_v_outmacdsignal = 0; + PyArrayObject *__pyx_v_outmacdhist = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -32637,47 +34032,70 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_264MOM(CYTHON_UNUSED PyObject *__pyx_s int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("MOM", 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(4, 4129, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4131, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4245, __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_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(4, 4134, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4248, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outmacd = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_MOM(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4249, __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(4, 4250, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_fastmatype, __pyx_v_slowperiod, __pyx_v_slowmatype, __pyx_v_signalperiod, __pyx_v_signalmatype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmacd)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmacdsignal)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmacdhist)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MOM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4136, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDEXT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4252, __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); + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4253, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_outmacd); + __Pyx_GIVEREF((PyObject *)__pyx_v_outmacd); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outmacd)) != (0)) __PYX_ERR(4, 4253, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outmacdsignal); + __Pyx_GIVEREF((PyObject *)__pyx_v_outmacdsignal); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outmacdsignal)) != (0)) __PYX_ERR(4, 4253, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outmacdhist); + __Pyx_GIVEREF((PyObject *)__pyx_v_outmacdhist); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_outmacdhist)) != (0)) __PYX_ERR(4, 4253, __pyx_L1_error); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MOM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MACDEXT", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_outmacd); + __Pyx_XDECREF((PyObject *)__pyx_v_outmacdsignal); + __Pyx_XDECREF((PyObject *)__pyx_v_outmacdhist); __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); @@ -32686,24 +34104,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_264MOM(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_267MULT(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_275MACDFIX(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_266MULT, "MULT(ndarray real0, ndarray real1)\n\nMULT(real0, real1)\n\nVector Arithmetic Mult (Math Operators)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_267MULT = {"MULT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_267MULT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_266MULT}; -static PyObject *__pyx_pw_5talib_7_ta_lib_267MULT(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_274MACDFIX, "MACDFIX(ndarray real, int signalperiod=-0x80000000)\n\nMACDFIX(real[, signalperiod=?])\n\nMoving Average Convergence/Divergence Fix 12/26 (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n signalperiod: 9\nOutputs:\n macd\n macdsignal\n macdhist"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_275MACDFIX = {"MACDFIX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_275MACDFIX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_274MACDFIX}; +static PyObject *__pyx_pw_5talib_7_ta_lib_275MACDFIX(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real0 = 0; - PyArrayObject *__pyx_v_real1 = 0; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_signalperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -32714,7 +34132,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MULT (wrapper)", 0); + __Pyx_RefNannySetupContext("MACDFIX (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -32724,54 +34142,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4139, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4255, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4139, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4255, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4139, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4255, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MULT", 0) < (0)) __PYX_ERR(4, 4139, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MULT", 1, 2, 2, i); __PYX_ERR(4, 4139, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MACDFIX", 0) < (0)) __PYX_ERR(4, 4255, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MACDFIX", 0, 1, 2, i); __PYX_ERR(4, 4255, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4139, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4139, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4255, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4255, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4257, __pyx_L3_error) + } else { + __pyx_v_signalperiod = ((int)((int)-2147483648)); } - __pyx_v_real0 = ((PyArrayObject *)values[0]); - __pyx_v_real1 = ((PyArrayObject *)values[1]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MULT", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4139, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MACDFIX", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4255, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MULT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MACDFIX", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(4, 4141, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(4, 4141, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_266MULT(__pyx_self, __pyx_v_real0, __pyx_v_real1); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4257, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_274MACDFIX(__pyx_self, __pyx_v_real, __pyx_v_signalperiod); /* function exit code */ goto __pyx_L0; @@ -32790,7 +34216,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_266MULT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1) { +static PyObject *__pyx_pf_5talib_7_ta_lib_274MACDFIX(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; @@ -32798,65 +34224,81 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_266MULT(CYTHON_UNUSED PyObject *__pyx_ TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outmacd = 0; + PyArrayObject *__pyx_v_outmacdsignal = 0; + PyArrayObject *__pyx_v_outmacdhist = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + npy_int __pyx_t_2; 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(4, 4159, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("MACDFIX", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4160, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4280, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 4161, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4162, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4282, __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_MULT_Lookback()); + __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(4, 4165, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4285, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outmacd = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_MULT(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4286, __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(4, 4287, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outmacdhist = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MULT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4167, __pyx_L1_error) + __pyx_v_retCode = TA_MACDFIX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmacd)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmacdsignal)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmacdhist)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDFIX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 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); + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4290, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_outmacd); + __Pyx_GIVEREF((PyObject *)__pyx_v_outmacd); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outmacd)) != (0)) __PYX_ERR(4, 4290, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outmacdsignal); + __Pyx_GIVEREF((PyObject *)__pyx_v_outmacdsignal); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outmacdsignal)) != (0)) __PYX_ERR(4, 4290, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outmacdhist); + __Pyx_GIVEREF((PyObject *)__pyx_v_outmacdhist); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_outmacdhist)) != (0)) __PYX_ERR(4, 4290, __pyx_L1_error); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MULT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MACDFIX", __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_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; @@ -32864,37 +34306,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_266MULT(CYTHON_UNUSED PyObject *__pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_269NATR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_277MAMA(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_268NATR, "NATR(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nNATR(high, low, close[, timeperiod=?])\n\nNormalized Average True Range (Volatility Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_269NATR = {"NATR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_269NATR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_268NATR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_269NATR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_276MAMA, "MAMA(ndarray real, double fastlimit=-4e37, double slowlimit=-4e37)\n\nMAMA(real[, fastlimit=?, slowlimit=?])\n\nMESA Adaptive Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastlimit: 0.5\n slowlimit: 0.05\nOutputs:\n mama\n fama"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_277MAMA = {"MAMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_277MAMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_276MAMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_277MAMA(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; + PyArrayObject *__pyx_v_real = 0; + double __pyx_v_fastlimit; + double __pyx_v_slowlimit; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("NATR (wrapper)", 0); + __Pyx_RefNannySetupContext("MAMA (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -32904,78 +34345,75 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastlimit,&__pyx_mstate_global->__pyx_n_u_slowlimit,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4170, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4292, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4170, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4170, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4292, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4170, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4292, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4170, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4292, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "NATR", 0) < (0)) __PYX_ERR(4, 4170, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("NATR", 0, 3, 4, i); __PYX_ERR(4, 4170, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MAMA", 0) < (0)) __PYX_ERR(4, 4292, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MAMA", 0, 1, 3, i); __PYX_ERR(4, 4292, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4170, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4170, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4292, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4170, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4292, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4170, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4292, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4172, __pyx_L3_error) + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_fastlimit = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fastlimit == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 4294, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + __pyx_v_fastlimit = ((double)((double)-4e37)); + } + if (values[2]) { + __pyx_v_slowlimit = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_slowlimit == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 4294, __pyx_L3_error) + } else { + __pyx_v_slowlimit = ((double)((double)-4e37)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("NATR", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 4170, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MAMA", 0, 1, 3, __pyx_nargs); __PYX_ERR(4, 4292, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.NATR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MAMA", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 4172, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 4172, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 4172, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_268NATR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4294, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_276MAMA(__pyx_self, __pyx_v_real, __pyx_v_fastlimit, __pyx_v_slowlimit); /* function exit code */ goto __pyx_L0; @@ -32994,7 +34432,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_268NATR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_276MAMA(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; @@ -33002,72 +34440,71 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_268NATR(CYTHON_UNUSED PyObject *__pyx_ TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outmama = 0; + PyArrayObject *__pyx_v_outfama = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + npy_int __pyx_t_2; 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(4, 4191, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4192, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("MAMA", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4193, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4316, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 4194, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4195, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4318, __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_NATR_Lookback(__pyx_v_timeperiod)); + __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(4, 4198, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4321, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outmama = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_NATR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4322, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_fastlimit, __pyx_v_slowlimit, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmama)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outfama)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NATR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4200, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4324, __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); + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4325, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_outmama); + __Pyx_GIVEREF((PyObject *)__pyx_v_outmama); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outmama)) != (0)) __PYX_ERR(4, 4325, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outfama); + __Pyx_GIVEREF((PyObject *)__pyx_v_outfama); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outfama)) != (0)) __PYX_ERR(4, 4325, __pyx_L1_error); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.NATR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MAMA", __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_outmama); + __Pyx_XDECREF((PyObject *)__pyx_v_outfama); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -33075,35 +34512,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_268NATR(CYTHON_UNUSED PyObject *__pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_271OBV(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_279MARKETFI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_270OBV, "OBV(ndarray real, ndarray volume)\n\nOBV(real, volume)\n\nOn Balance Volume (Volume Indicators)\n\nInputs:\n real: (any ndarray)\n prices: ['volume']\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_271OBV = {"OBV", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_271OBV, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_270OBV}; -static PyObject *__pyx_pw_5talib_7_ta_lib_271OBV(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_278MARKETFI, "MARKETFI(ndarray high, ndarray low, ndarray volume)\n\nMARKETFI(high, low, volume)\n\nMarket Facilitation Index (Volume Indicators)\n\nInputs:\n prices: ['high', 'low', 'volume']\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_279MARKETFI = {"MARKETFI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_279MARKETFI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_278MARKETFI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_279MARKETFI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_volume = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("OBV (wrapper)", 0); + __Pyx_RefNannySetupContext("MARKETFI (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -33113,258 +34551,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_volume,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4203, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4327, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4327, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4203, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4327, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4203, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4327, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "OBV", 0) < (0)) __PYX_ERR(4, 4203, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("OBV", 1, 2, 2, i); __PYX_ERR(4, 4203, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MARKETFI", 0) < (0)) __PYX_ERR(4, 4327, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MARKETFI", 1, 3, 3, i); __PYX_ERR(4, 4327, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4203, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4327, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4203, __pyx_L3_error) - } - __pyx_v_real = ((PyArrayObject *)values[0]); - __pyx_v_volume = ((PyArrayObject *)values[1]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("OBV", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4203, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.OBV", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4205, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(4, 4205, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_270OBV(__pyx_self, __pyx_v_real, __pyx_v_volume); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_270OBV(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(4, 4223, __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(4, 4224, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 4225, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4226, __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(4, 4229, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_OBV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4231, __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_273PLUS_DI(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_272PLUS_DI, "PLUS_DI(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nPLUS_DI(high, low, close[, timeperiod=?])\n\nPlus Directional Indicator (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_273PLUS_DI = {"PLUS_DI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_273PLUS_DI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_272PLUS_DI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_273PLUS_DI(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("PLUS_DI (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4234, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4234, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4234, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4234, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4234, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PLUS_DI", 0) < (0)) __PYX_ERR(4, 4234, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PLUS_DI", 0, 3, 4, i); __PYX_ERR(4, 4234, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4234, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4234, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4234, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4234, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4327, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4327, __pyx_L3_error) } __pyx_v_high = ((PyArrayObject *)values[0]); __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4236, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } + __pyx_v_volume = ((PyArrayObject *)values[2]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("PLUS_DI", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 4234, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MARKETFI", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 4327, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.PLUS_DI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MARKETFI", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 4236, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 4236, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 4236, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_272PLUS_DI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 4329, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 4329, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(4, 4329, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_278MARKETFI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_volume); /* function exit code */ goto __pyx_L0; @@ -33383,7 +34625,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_272PLUS_DI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_278MARKETFI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_volume) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -33400,44 +34642,44 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_272PLUS_DI(CYTHON_UNUSED PyObject *__p int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("PLUS_DI", 0); + __Pyx_RefNannySetupContext("MARKETFI", 0); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_INCREF((PyObject *)__pyx_v_volume); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4255, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4346, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4256, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4347, __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(4, 4257, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4348, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 4258, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 4349, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4259, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4350, __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_v_lookback = (__pyx_v_begidx + TA_MARKETFI_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(4, 4262, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4353, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MARKETFI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4264, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MARKETFI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -33450,13 +34692,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_272PLUS_DI(CYTHON_UNUSED PyObject *__p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.PLUS_DI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MARKETFI", __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; @@ -33464,16 +34706,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_272PLUS_DI(CYTHON_UNUSED PyObject *__p /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_275PLUS_DM(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_281MASSI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_274PLUS_DM, "PLUS_DM(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nPLUS_DM(high, low[, timeperiod=?])\n\nPlus Directional Movement (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low']\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_275PLUS_DM = {"PLUS_DM", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_275PLUS_DM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_274PLUS_DM}; -static PyObject *__pyx_pw_5talib_7_ta_lib_275PLUS_DM(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_280MASSI, "MASSI(ndarray high, ndarray low, int fastperiod=-0x80000000, int slowperiod=-0x80000000)\n\nMASSI(high, low[, fastperiod=?, slowperiod=?])\n\nMass Index (Volatility Indicators)\n\nInputs:\n prices: ['high', 'low']\nParameters:\n fastperiod: 9\n slowperiod: 25\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_281MASSI = {"MASSI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_281MASSI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_280MASSI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_281MASSI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -33482,18 +34724,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds ) { PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; - int __pyx_v_timeperiod; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("PLUS_DM (wrapper)", 0); + __Pyx_RefNannySetupContext("MASSI (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -33503,42 +34746,50 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4267, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4358, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4358, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4267, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4358, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4267, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4358, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4267, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4358, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PLUS_DM", 0) < (0)) __PYX_ERR(4, 4267, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MASSI", 0) < (0)) __PYX_ERR(4, 4358, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PLUS_DM", 0, 2, 3, i); __PYX_ERR(4, 4267, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MASSI", 0, 2, 4, i); __PYX_ERR(4, 4358, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4358, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4267, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4358, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4267, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4358, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4267, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4358, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -33546,27 +34797,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_high = ((PyArrayObject *)values[0]); __pyx_v_low = ((PyArrayObject *)values[1]); if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4269, __pyx_L3_error) + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4360, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + __pyx_v_fastperiod = ((int)((int)-2147483648)); + } + if (values[3]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4360, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("PLUS_DM", 0, 2, 3, __pyx_nargs); __PYX_ERR(4, 4267, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MASSI", 0, 2, 4, __pyx_nargs); __PYX_ERR(4, 4358, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.PLUS_DM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MASSI", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 4269, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 4269, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_274PLUS_DM(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 4360, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 4360, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_280MASSI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_fastperiod, __pyx_v_slowperiod); /* function exit code */ goto __pyx_L0; @@ -33585,7 +34841,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_274PLUS_DM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_280MASSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -33602,38 +34858,38 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_274PLUS_DM(CYTHON_UNUSED PyObject *__p int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("PLUS_DM", 0); + __Pyx_RefNannySetupContext("MASSI", 0); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4288, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4380, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4289, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4381, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 4290, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 4382, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4291, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4383, __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_v_lookback = (__pyx_v_begidx + TA_MASSI_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(4, 4294, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4386, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MASSI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4296, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MASSI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4388, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -33646,7 +34902,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_274PLUS_DM(CYTHON_UNUSED PyObject *__p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.PLUS_DM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MASSI", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -33659,16 +34915,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_274PLUS_DM(CYTHON_UNUSED PyObject *__p /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_277PPO(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_283MAVP(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_276PPO, "PPO(ndarray real, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int matype=0)\n\nPPO(real[, fastperiod=?, slowperiod=?, matype=?])\n\nPercentage Price Oscillator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastperiod: 12\n slowperiod: 26\n matype: 0 (Simple Moving Average)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_277PPO = {"PPO", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_277PPO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_276PPO}; -static PyObject *__pyx_pw_5talib_7_ta_lib_277PPO(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_282MAVP, "MAVP(ndarray real, ndarray periods, int minperiod=-0x80000000, int maxperiod=-0x80000000, int matype=0)\n\nMAVP(real, periods[, minperiod=?, maxperiod=?, matype=?])\n\nMoving average with variable period (Overlap Studies)\n\nInputs:\n real: (any ndarray)\n periods: (any ndarray)\nParameters:\n minperiod: 2\n maxperiod: 30\n matype: 0 (Simple Moving Average)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_283MAVP = {"MAVP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_283MAVP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_282MAVP}; +static PyObject *__pyx_pw_5talib_7_ta_lib_283MAVP(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -33676,20 +34932,21 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyArrayObject *__pyx_v_real = 0; - int __pyx_v_fastperiod; - int __pyx_v_slowperiod; + PyArrayObject *__pyx_v_periods = 0; + int __pyx_v_minperiod; + int __pyx_v_maxperiod; int __pyx_v_matype; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("PPO (wrapper)", 0); + __Pyx_RefNannySetupContext("MAVP (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -33699,88 +34956,96 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_periods,&__pyx_mstate_global->__pyx_n_u_minperiod,&__pyx_mstate_global->__pyx_n_u_maxperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4299, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4391, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 4391, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4299, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4391, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4299, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4391, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4299, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4391, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4299, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4391, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PPO", 0) < (0)) __PYX_ERR(4, 4299, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PPO", 0, 1, 4, i); __PYX_ERR(4, 4299, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MAVP", 0) < (0)) __PYX_ERR(4, 4391, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MAVP", 0, 2, 5, i); __PYX_ERR(4, 4391, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 4391, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4299, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4391, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4299, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4391, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4299, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4391, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4299, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4391, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4301, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)((int)-2147483648)); - } + __pyx_v_periods = ((PyArrayObject *)values[1]); if (values[2]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4301, __pyx_L3_error) + __pyx_v_minperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_minperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4393, __pyx_L3_error) } else { - __pyx_v_slowperiod = ((int)((int)-2147483648)); + __pyx_v_minperiod = ((int)((int)-2147483648)); } if (values[3]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4301, __pyx_L3_error) + __pyx_v_maxperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_maxperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4393, __pyx_L3_error) + } else { + __pyx_v_maxperiod = ((int)((int)-2147483648)); + } + if (values[4]) { + __pyx_v_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4393, __pyx_L3_error) } else { __pyx_v_matype = ((int)((int)0)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("PPO", 0, 1, 4, __pyx_nargs); __PYX_ERR(4, 4299, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MAVP", 0, 2, 5, __pyx_nargs); __PYX_ERR(4, 4391, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.PPO", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MAVP", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4301, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_276PPO(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4393, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_periods), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "periods", 0))) __PYX_ERR(4, 4393, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_282MAVP(__pyx_self, __pyx_v_real, __pyx_v_periods, __pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype); /* function exit code */ goto __pyx_L0; @@ -33799,7 +35064,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_276PPO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype) { +static PyObject *__pyx_pf_5talib_7_ta_lib_282MAVP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_periods, int __pyx_v_minperiod, int __pyx_v_maxperiod, int __pyx_v_matype) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -33811,35 +35076,43 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_276PPO(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + 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("PPO", 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(4, 4322, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4415, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_periods)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4416, __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_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4324, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real, __pyx_v_periods); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 4417, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_periods))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4418, __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_PPO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype)); + __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(4, 4327, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4421, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MAVP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_periods)) + __pyx_v_begidx), __pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PPO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4329, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAVP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4423, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -33852,11 +35125,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_276PPO(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.PPO", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.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; @@ -33864,16 +35138,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_276PPO(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_279ROC(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_285MAX(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_278ROC, "ROC(ndarray real, int timeperiod=-0x80000000)\n\nROC(real[, timeperiod=?])\n\nRate of change : ((real/prevPrice)-1)*100 (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_279ROC = {"ROC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_279ROC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_278ROC}; -static PyObject *__pyx_pw_5talib_7_ta_lib_279ROC(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_284MAX, "MAX(ndarray real, int timeperiod=-0x80000000)\n\nMAX(real[, timeperiod=?])\n\nHighest value over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_285MAX = {"MAX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_285MAX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_284MAX}; +static PyObject *__pyx_pw_5talib_7_ta_lib_285MAX(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -33892,7 +35166,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("ROC (wrapper)", 0); + __Pyx_RefNannySetupContext("MAX (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -33904,60 +35178,60 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4332, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4426, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4332, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4426, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4332, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4426, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ROC", 0) < (0)) __PYX_ERR(4, 4332, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MAX", 0) < (0)) __PYX_ERR(4, 4426, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ROC", 0, 1, 2, i); __PYX_ERR(4, 4332, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MAX", 0, 1, 2, i); __PYX_ERR(4, 4426, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4332, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4426, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4332, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4426, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4334, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4428, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ROC", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4332, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MAX", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4426, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ROC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4334, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_278ROC(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4428, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_284MAX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -33976,7 +35250,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_278ROC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_284MAX(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; @@ -33992,31 +35266,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_278ROC(CYTHON_UNUSED PyObject *__pyx_s int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("ROC", 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(4, 4353, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4447, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4355, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4449, __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_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(4, 4358, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4452, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MAX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4360, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4454, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -34029,7 +35303,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_278ROC(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.ROC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MAX", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -34041,16 +35315,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_278ROC(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_281ROCP(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_287MAXINDEX(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_280ROCP, "ROCP(ndarray real, int timeperiod=-0x80000000)\n\nROCP(real[, timeperiod=?])\n\nRate of change Percentage: (real-prevPrice)/prevPrice (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_281ROCP = {"ROCP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_281ROCP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_280ROCP}; -static PyObject *__pyx_pw_5talib_7_ta_lib_281ROCP(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_286MAXINDEX, "MAXINDEX(ndarray real, int timeperiod=-0x80000000)\n\nMAXINDEX(real[, timeperiod=?])\n\nIndex of highest value over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n integer"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_287MAXINDEX = {"MAXINDEX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_287MAXINDEX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_286MAXINDEX}; +static PyObject *__pyx_pw_5talib_7_ta_lib_287MAXINDEX(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -34069,7 +35343,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("ROCP (wrapper)", 0); + __Pyx_RefNannySetupContext("MAXINDEX (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -34081,60 +35355,60 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4363, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4457, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4363, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4457, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4363, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4457, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ROCP", 0) < (0)) __PYX_ERR(4, 4363, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MAXINDEX", 0) < (0)) __PYX_ERR(4, 4457, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ROCP", 0, 1, 2, i); __PYX_ERR(4, 4363, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MAXINDEX", 0, 1, 2, i); __PYX_ERR(4, 4457, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4363, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4457, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4363, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4457, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4365, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4459, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ROCP", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4363, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MAXINDEX", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4457, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ROCP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4365, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_280ROCP(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4459, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_286MAXINDEX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -34153,7 +35427,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_280ROCP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_286MAXINDEX(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; @@ -34161,55 +35435,68 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_280ROCP(CYTHON_UNUSED PyObject *__pyx_ TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outinteger = 0; + int *__pyx_v_outinteger_data; + int __pyx_v_i; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; 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("ROCP", 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(4, 4384, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4478, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4386, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4480, __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_v_lookback = (__pyx_v_begidx + TA_MAXINDEX_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(4, 4389, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_ROCP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MAXINDEX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4391, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAXINDEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4485, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_outinteger_data = ((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)); + + __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_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __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.ROCP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MAXINDEX", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); @@ -34218,24 +35505,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_280ROCP(CYTHON_UNUSED PyObject *__pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_283ROCR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_289MEDPRICE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_282ROCR, "ROCR(ndarray real, int timeperiod=-0x80000000)\n\nROCR(real[, timeperiod=?])\n\nRate of change ratio: (real/prevPrice) (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_283ROCR = {"ROCR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_283ROCR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_282ROCR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_283ROCR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_288MEDPRICE, "MEDPRICE(ndarray high, ndarray low)\n\nMEDPRICE(high, low)\n\nMedian Price (Price Transform)\n\nInputs:\n prices: ['high', 'low']\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_289MEDPRICE = {"MEDPRICE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_289MEDPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_288MEDPRICE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_289MEDPRICE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -34246,7 +35533,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("ROCR (wrapper)", 0); + __Pyx_RefNannySetupContext("MEDPRICE (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -34256,62 +35543,267 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4394, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4491, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4394, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4491, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4394, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4491, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ROCR", 0) < (0)) __PYX_ERR(4, 4394, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ROCR", 0, 1, 2, i); __PYX_ERR(4, 4394, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MEDPRICE", 0) < (0)) __PYX_ERR(4, 4491, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MEDPRICE", 1, 2, 2, i); __PYX_ERR(4, 4491, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4491, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4491, __pyx_L3_error) + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("MEDPRICE", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4491, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MEDPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 4493, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 4493, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_288MEDPRICE(__pyx_self, __pyx_v_high, __pyx_v_low); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_288MEDPRICE(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(4, 4510, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4511, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 4512, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4513, __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(4, 4516, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MEDPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4518, __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_291MFI(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_290MFI, "MFI(ndarray high, ndarray low, ndarray close, ndarray volume, int timeperiod=-0x80000000)\n\nMFI(high, low, close, volume[, timeperiod=?])\n\nMoney Flow Index (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low', 'close', 'volume']\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_291MFI = {"MFI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_291MFI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_290MFI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_291MFI(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + PyArrayObject *__pyx_v_volume = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[5] = {0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("MFI (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4521, __pyx_L3_error) + if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 4521, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4521, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4521, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4394, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4521, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4394, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4521, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MFI", 0) < (0)) __PYX_ERR(4, 4521, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MFI", 0, 4, 5, i); __PYX_ERR(4, 4521, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 4521, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4521, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4521, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4521, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4521, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4396, __pyx_L3_error) + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + __pyx_v_volume = ((PyArrayObject *)values[3]); + if (values[4]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4523, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ROCR", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4394, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MFI", 0, 4, 5, __pyx_nargs); __PYX_ERR(4, 4521, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ROCR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MFI", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4396, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_282ROCR(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 4523, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 4523, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 4523, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(4, 4523, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_290MFI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -34330,7 +35822,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_282ROCR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_290MFI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -34342,35 +35834,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_282ROCR(CYTHON_UNUSED PyObject *__pyx_ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + 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("ROCR", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __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_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4415, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4542, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4543, __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_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4417, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4544, __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(4, 4545, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 4546, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4547, __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_ROCR_Lookback(__pyx_v_timeperiod)); + __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(4, 4420, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4550, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MFI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4422, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MFI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4552, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -34383,11 +35895,14 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_282ROCR(CYTHON_UNUSED PyObject *__pyx_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.ROCR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_real); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF((PyObject *)__pyx_v_volume); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -34395,16 +35910,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_282ROCR(CYTHON_UNUSED PyObject *__pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_285ROCR100(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_293MIDPOINT(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_284ROCR100, "ROCR100(ndarray real, int timeperiod=-0x80000000)\n\nROCR100(real[, timeperiod=?])\n\nRate of change ratio 100 scale: (real/prevPrice)*100 (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_285ROCR100 = {"ROCR100", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_285ROCR100, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_284ROCR100}; -static PyObject *__pyx_pw_5talib_7_ta_lib_285ROCR100(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_292MIDPOINT, "MIDPOINT(ndarray real, int timeperiod=-0x80000000)\n\nMIDPOINT(real[, timeperiod=?])\n\nMidPoint over period (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_293MIDPOINT = {"MIDPOINT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_293MIDPOINT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_292MIDPOINT}; +static PyObject *__pyx_pw_5talib_7_ta_lib_293MIDPOINT(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -34423,7 +35938,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("ROCR100 (wrapper)", 0); + __Pyx_RefNannySetupContext("MIDPOINT (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -34435,60 +35950,60 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4425, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4555, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4425, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4555, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4425, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4555, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ROCR100", 0) < (0)) __PYX_ERR(4, 4425, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MIDPOINT", 0) < (0)) __PYX_ERR(4, 4555, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ROCR100", 0, 1, 2, i); __PYX_ERR(4, 4425, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MIDPOINT", 0, 1, 2, i); __PYX_ERR(4, 4555, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4425, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4555, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4425, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4555, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4427, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4557, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ROCR100", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4425, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MIDPOINT", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4555, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ROCR100", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4427, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_284ROCR100(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4557, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_292MIDPOINT(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -34507,7 +36022,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_284ROCR100(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_292MIDPOINT(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; @@ -34523,31 +36038,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_284ROCR100(CYTHON_UNUSED PyObject *__p int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("ROCR100", 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(4, 4446, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4576, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4448, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4578, __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_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(4, 4451, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4581, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MIDPOINT(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR100, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4453, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPOINT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4583, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -34560,7 +36075,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_284ROCR100(CYTHON_UNUSED PyObject *__p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.ROCR100", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MIDPOINT", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -34572,35 +36087,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_284ROCR100(CYTHON_UNUSED PyObject *__p /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_287RSI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_295MIDPRICE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_286RSI, "RSI(ndarray real, int timeperiod=-0x80000000)\n\nRSI(real[, timeperiod=?])\n\nRelative Strength Index (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_287RSI = {"RSI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_287RSI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_286RSI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_287RSI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_294MIDPRICE, "MIDPRICE(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nMIDPRICE(high, low[, timeperiod=?])\n\nMidpoint Price over period (Overlap Studies)\n\nInputs:\n prices: ['high', 'low']\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_295MIDPRICE = {"MIDPRICE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_295MIDPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_294MIDPRICE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_295MIDPRICE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("RSI (wrapper)", 0); + __Pyx_RefNannySetupContext("MIDPRICE (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -34610,62 +36126,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4456, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4586, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4586, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4456, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4586, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4456, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4586, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "RSI", 0) < (0)) __PYX_ERR(4, 4456, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("RSI", 0, 1, 2, i); __PYX_ERR(4, 4456, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MIDPRICE", 0) < (0)) __PYX_ERR(4, 4586, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MIDPRICE", 0, 2, 3, i); __PYX_ERR(4, 4586, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4586, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4456, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4586, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4456, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4586, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4458, __pyx_L3_error) + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4588, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("RSI", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4456, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MIDPRICE", 0, 2, 3, __pyx_nargs); __PYX_ERR(4, 4586, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.RSI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MIDPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4458, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_286RSI(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 4588, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 4588, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_294MIDPRICE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -34684,7 +36208,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_286RSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_294MIDPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -34696,35 +36220,43 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_286RSI(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + 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("RSI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("MIDPRICE", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4477, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4607, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4608, __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_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4479, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 4609, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4610, __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_RSI_Lookback(__pyx_v_timeperiod)); + __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(4, 4482, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4613, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MIDPRICE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RSI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4484, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4615, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -34737,11 +36269,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_286RSI(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.RSI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MIDPRICE", __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_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -34749,37 +36282,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_286RSI(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_289SAR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_297MIN(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_288SAR, "SAR(ndarray high, ndarray low, double acceleration=0.02, double maximum=0.2)\n\nSAR(high, low[, acceleration=?, maximum=?])\n\nParabolic SAR (Overlap Studies)\n\nInputs:\n prices: ['high', 'low']\nParameters:\n acceleration: 0.02\n maximum: 0.2\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_289SAR = {"SAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_289SAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_288SAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_289SAR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_296MIN, "MIN(ndarray real, int timeperiod=-0x80000000)\n\nMIN(real[, timeperiod=?])\n\nLowest value over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_297MIN = {"MIN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_297MIN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_296MIN}; +static PyObject *__pyx_pw_5talib_7_ta_lib_297MIN(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - double __pyx_v_acceleration; - double __pyx_v_maximum; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("SAR (wrapper)", 0); + __Pyx_RefNannySetupContext("MIN (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -34789,83 +36320,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_acceleration,&__pyx_mstate_global->__pyx_n_u_maximum,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4487, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4618, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4487, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4487, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4487, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4618, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4487, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4618, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SAR", 0) < (0)) __PYX_ERR(4, 4487, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SAR", 0, 2, 4, i); __PYX_ERR(4, 4487, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MIN", 0) < (0)) __PYX_ERR(4, 4618, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MIN", 0, 1, 2, i); __PYX_ERR(4, 4618, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4487, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4487, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4487, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4618, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4487, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4618, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_acceleration = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_acceleration == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 4489, __pyx_L3_error) - } else { - __pyx_v_acceleration = ((double)((double)0.02)); - } - if (values[3]) { - __pyx_v_maximum = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_maximum == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 4489, __pyx_L3_error) + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4620, __pyx_L3_error) } else { - __pyx_v_maximum = ((double)((double)0.2)); + __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("SAR", 0, 2, 4, __pyx_nargs); __PYX_ERR(4, 4487, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MIN", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4618, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MIN", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 4489, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 4489, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_288SAR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_acceleration, __pyx_v_maximum); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4620, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_296MIN(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -34884,7 +36394,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_288SAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, double __pyx_v_acceleration, double __pyx_v_maximum) { +static PyObject *__pyx_pf_5talib_7_ta_lib_296MIN(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; @@ -34896,43 +36406,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_288SAR(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + npy_int __pyx_t_2; 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(4, 4509, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 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_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4510, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4639, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 4511, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4512, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4641, __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_SAR_Lookback(__pyx_v_acceleration, __pyx_v_maximum)); + __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(4, 4515, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4644, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_acceleration, __pyx_v_maximum, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MIN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4517, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4646, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -34945,12 +36447,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_288SAR(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.SAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MIN", __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_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -34958,43 +36459,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_288SAR(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_291SAREXT(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_299MININDEX(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_290SAREXT, "SAREXT(ndarray high, ndarray low, double startvalue=-4e37, double offsetonreverse=-4e37, double accelerationinitlong=-4e37, double accelerationlong=-4e37, double accelerationmaxlong=-4e37, double accelerationinitshort=-4e37, double accelerationshort=-4e37, double accelerationmaxshort=-4e37)\n\nSAREXT(high, low[, startvalue=?, offsetonreverse=?, accelerationinitlong=?, accelerationlong=?, accelerationmaxlong=?, accelerationinitshort=?, accelerationshort=?, accelerationmaxshort=?])\n\nParabolic SAR - Extended (Overlap Studies)\n\nInputs:\n prices: ['high', 'low']\nParameters:\n startvalue: 0.0\n offsetonreverse: 0.0\n accelerationinitlong: 0.02\n accelerationlong: 0.02\n accelerationmaxlong: 0.2\n accelerationinitshort: 0.02\n accelerationshort: 0.02\n accelerationmaxshort: 0.2\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_291SAREXT = {"SAREXT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_291SAREXT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_290SAREXT}; -static PyObject *__pyx_pw_5talib_7_ta_lib_291SAREXT(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_298MININDEX, "MININDEX(ndarray real, int timeperiod=-0x80000000)\n\nMININDEX(real[, timeperiod=?])\n\nIndex of lowest value over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n integer"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_299MININDEX = {"MININDEX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_299MININDEX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_298MININDEX}; +static PyObject *__pyx_pw_5talib_7_ta_lib_299MININDEX(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - double __pyx_v_startvalue; - double __pyx_v_offsetonreverse; - double __pyx_v_accelerationinitlong; - double __pyx_v_accelerationlong; - double __pyx_v_accelerationmaxlong; - double __pyx_v_accelerationinitshort; - double __pyx_v_accelerationshort; - double __pyx_v_accelerationmaxshort; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("SAREXT (wrapper)", 0); + __Pyx_RefNannySetupContext("MININDEX (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -35004,161 +36497,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_startvalue,&__pyx_mstate_global->__pyx_n_u_offsetonreverse,&__pyx_mstate_global->__pyx_n_u_accelerationinitlong,&__pyx_mstate_global->__pyx_n_u_accelerationlong,&__pyx_mstate_global->__pyx_n_u_accelerationmaxlong,&__pyx_mstate_global->__pyx_n_u_accelerationinitshort,&__pyx_mstate_global->__pyx_n_u_accelerationshort,&__pyx_mstate_global->__pyx_n_u_accelerationmaxshort,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4520, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4649, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 10: - values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(4, 4520, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 9: - values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(4, 4520, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 8: - values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(4, 4520, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 7: - values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(4, 4520, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 4520, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 4520, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4520, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4520, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4520, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4649, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4520, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4649, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SAREXT", 0) < (0)) __PYX_ERR(4, 4520, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SAREXT", 0, 2, 10, i); __PYX_ERR(4, 4520, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MININDEX", 0) < (0)) __PYX_ERR(4, 4649, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MININDEX", 0, 1, 2, i); __PYX_ERR(4, 4649, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 10: - values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(4, 4520, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 9: - values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(4, 4520, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 8: - values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(4, 4520, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 7: - values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(4, 4520, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 4520, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 4520, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4520, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4520, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4520, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4649, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4520, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4649, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_startvalue = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_startvalue == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 4522, __pyx_L3_error) - } else { - __pyx_v_startvalue = ((double)((double)-4e37)); - } - if (values[3]) { - __pyx_v_offsetonreverse = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_offsetonreverse == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 4522, __pyx_L3_error) - } else { - __pyx_v_offsetonreverse = ((double)((double)-4e37)); - } - if (values[4]) { - __pyx_v_accelerationinitlong = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_accelerationinitlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 4522, __pyx_L3_error) - } else { - __pyx_v_accelerationinitlong = ((double)((double)-4e37)); - } - if (values[5]) { - __pyx_v_accelerationlong = __Pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_accelerationlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 4522, __pyx_L3_error) - } else { - __pyx_v_accelerationlong = ((double)((double)-4e37)); - } - if (values[6]) { - __pyx_v_accelerationmaxlong = __Pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_accelerationmaxlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 4522, __pyx_L3_error) - } else { - __pyx_v_accelerationmaxlong = ((double)((double)-4e37)); - } - if (values[7]) { - __pyx_v_accelerationinitshort = __Pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_accelerationinitshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 4522, __pyx_L3_error) - } else { - __pyx_v_accelerationinitshort = ((double)((double)-4e37)); - } - if (values[8]) { - __pyx_v_accelerationshort = __Pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_accelerationshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 4522, __pyx_L3_error) - } else { - __pyx_v_accelerationshort = ((double)((double)-4e37)); - } - if (values[9]) { - __pyx_v_accelerationmaxshort = __Pyx_PyFloat_AsDouble(values[9]); if (unlikely((__pyx_v_accelerationmaxshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 4522, __pyx_L3_error) + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4651, __pyx_L3_error) } else { - __pyx_v_accelerationmaxshort = ((double)((double)-4e37)); + __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("SAREXT", 0, 2, 10, __pyx_nargs); __PYX_ERR(4, 4520, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MININDEX", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4649, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SAREXT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MININDEX", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 4522, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 4522, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_290SAREXT(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_startvalue, __pyx_v_offsetonreverse, __pyx_v_accelerationinitlong, __pyx_v_accelerationlong, __pyx_v_accelerationmaxlong, __pyx_v_accelerationinitshort, __pyx_v_accelerationshort, __pyx_v_accelerationmaxshort); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4651, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_298MININDEX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -35177,7 +36571,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_290SAREXT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, double __pyx_v_startvalue, double __pyx_v_offsetonreverse, double __pyx_v_accelerationinitlong, double __pyx_v_accelerationlong, double __pyx_v_accelerationmaxlong, double __pyx_v_accelerationinitshort, double __pyx_v_accelerationshort, double __pyx_v_accelerationmaxshort) { +static PyObject *__pyx_pf_5talib_7_ta_lib_298MININDEX(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; @@ -35185,65 +36579,69 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_290SAREXT(CYTHON_UNUSED PyObject *__py TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outinteger = 0; + int *__pyx_v_outinteger_data; + int __pyx_v_i; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + 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("SAREXT", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4548, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 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_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4549, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4670, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 4550, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4551, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4672, __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_SAREXT_Lookback(__pyx_v_startvalue, __pyx_v_offsetonreverse, __pyx_v_accelerationinitlong, __pyx_v_accelerationlong, __pyx_v_accelerationmaxlong, __pyx_v_accelerationinitshort, __pyx_v_accelerationshort, __pyx_v_accelerationmaxshort)); + __pyx_v_lookback = (__pyx_v_begidx + TA_MININDEX_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(4, 4554, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4675, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_SAREXT(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_startvalue, __pyx_v_offsetonreverse, __pyx_v_accelerationinitlong, __pyx_v_accelerationlong, __pyx_v_accelerationmaxlong, __pyx_v_accelerationinitshort, __pyx_v_accelerationshort, __pyx_v_accelerationmaxshort, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MININDEX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAREXT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4556, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MININDEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4677, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_outinteger_data = ((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)); + + __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_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __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.SAREXT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MININDEX", __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_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -35251,16 +36649,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_290SAREXT(CYTHON_UNUSED PyObject *__py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_293SIN(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_301MINMAX(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_292SIN, "SIN(ndarray real)\n\nSIN(real)\n\nVector Trigonometric Sin (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_293SIN = {"SIN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_293SIN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_292SIN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_293SIN(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_300MINMAX, "MINMAX(ndarray real, int timeperiod=-0x80000000)\n\nMINMAX(real[, timeperiod=?])\n\nLowest and highest values over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n min\n max"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_301MINMAX = {"MINMAX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_301MINMAX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_300MINMAX}; +static PyObject *__pyx_pw_5talib_7_ta_lib_301MINMAX(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -35268,17 +36666,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("SIN (wrapper)", 0); + __Pyx_RefNannySetupContext("MINMAX (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -35288,46 +36687,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4559, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4683, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4683, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4559, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4683, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SIN", 0) < (0)) __PYX_ERR(4, 4559, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MINMAX", 0) < (0)) __PYX_ERR(4, 4683, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SIN", 1, 1, 1, i); __PYX_ERR(4, 4559, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MINMAX", 0, 1, 2, i); __PYX_ERR(4, 4683, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4559, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4683, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4683, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4685, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("SIN", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 4559, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MINMAX", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4683, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SIN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINMAX", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4561, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_292SIN(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4685, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_300MINMAX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -35346,7 +36761,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_292SIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_300MINMAX(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; @@ -35354,7 +36769,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_292SIN(CYTHON_UNUSED PyObject *__pyx_s TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outmin = 0; + PyArrayObject *__pyx_v_outmax = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -35362,47 +36778,61 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_292SIN(CYTHON_UNUSED PyObject *__pyx_s int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("SIN", 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(4, 4578, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4706, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4580, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4708, __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_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(4, 4583, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4711, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outmin = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_SIN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4712, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmin)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmax)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SIN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4585, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4714, __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); + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4715, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_outmin); + __Pyx_GIVEREF((PyObject *)__pyx_v_outmin); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outmin)) != (0)) __PYX_ERR(4, 4715, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outmax); + __Pyx_GIVEREF((PyObject *)__pyx_v_outmax); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outmax)) != (0)) __PYX_ERR(4, 4715, __pyx_L1_error); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; 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_AddTraceback("talib._ta_lib.MINMAX", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_outmin); + __Pyx_XDECREF((PyObject *)__pyx_v_outmax); __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); @@ -35411,16 +36841,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_292SIN(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_295SINH(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_303MINMAXINDEX(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_294SINH, "SINH(ndarray real)\n\nSINH(real)\n\nVector Trigonometric Sinh (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_295SINH = {"SINH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_295SINH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_294SINH}; -static PyObject *__pyx_pw_5talib_7_ta_lib_295SINH(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_302MINMAXINDEX, "MINMAXINDEX(ndarray real, int timeperiod=-0x80000000)\n\nMINMAXINDEX(real[, timeperiod=?])\n\nIndexes of lowest and highest values over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n minidx\n maxidx"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_303MINMAXINDEX = {"MINMAXINDEX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_303MINMAXINDEX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_302MINMAXINDEX}; +static PyObject *__pyx_pw_5talib_7_ta_lib_303MINMAXINDEX(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -35428,17 +36858,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("SINH (wrapper)", 0); + __Pyx_RefNannySetupContext("MINMAXINDEX (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -35448,46 +36879,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4588, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4717, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4717, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4588, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4717, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SINH", 0) < (0)) __PYX_ERR(4, 4588, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MINMAXINDEX", 0) < (0)) __PYX_ERR(4, 4717, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SINH", 1, 1, 1, i); __PYX_ERR(4, 4588, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MINMAXINDEX", 0, 1, 2, i); __PYX_ERR(4, 4717, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4588, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4717, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4717, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4719, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("SINH", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 4588, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MINMAXINDEX", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4717, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SINH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINMAXINDEX", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4590, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_294SINH(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4719, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_302MINMAXINDEX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -35506,7 +36953,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_294SINH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_302MINMAXINDEX(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; @@ -35514,55 +36961,93 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_294SINH(CYTHON_UNUSED PyObject *__pyx_ TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_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("SINH", 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(4, 4607, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4740, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4609, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4742, __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_v_lookback = (__pyx_v_begidx + TA_MINMAXINDEX_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(4, 4612, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4745, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outminidx = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_SINH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4746, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outmaxidx = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SINH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4614, __pyx_L1_error) + __pyx_v_retCode = TA_MINMAXINDEX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outminidx)) + __pyx_v_lookback), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmaxidx)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAXINDEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4748, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_outminidx_data = ((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outminidx)); + + __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_f_5numpy_7ndarray_4data_data(__pyx_v_outmaxidx)); + + __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_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4755, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_outminidx); + __Pyx_GIVEREF((PyObject *)__pyx_v_outminidx); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outminidx)) != (0)) __PYX_ERR(4, 4755, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outmaxidx); + __Pyx_GIVEREF((PyObject *)__pyx_v_outmaxidx); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outmaxidx)) != (0)) __PYX_ERR(4, 4755, __pyx_L1_error); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; 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_AddTraceback("talib._ta_lib.MINMAXINDEX", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_outminidx); + __Pyx_XDECREF((PyObject *)__pyx_v_outmaxidx); __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); @@ -35571,35 +37056,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_294SINH(CYTHON_UNUSED PyObject *__pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_297SMA(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_305MINUS_DI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_296SMA, "SMA(ndarray real, int timeperiod=-0x80000000)\n\nSMA(real[, timeperiod=?])\n\nSimple Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_297SMA = {"SMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_297SMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_296SMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_297SMA(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_304MINUS_DI, "MINUS_DI(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nMINUS_DI(high, low, close[, timeperiod=?])\n\nMinus Directional Indicator (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_305MINUS_DI = {"MINUS_DI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_305MINUS_DI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_304MINUS_DI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_305MINUS_DI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("SMA (wrapper)", 0); + __Pyx_RefNannySetupContext("MINUS_DI (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -35609,62 +37096,78 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4617, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4757, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4757, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4757, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4617, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4757, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4617, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4757, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SMA", 0) < (0)) __PYX_ERR(4, 4617, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SMA", 0, 1, 2, i); __PYX_ERR(4, 4617, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MINUS_DI", 0) < (0)) __PYX_ERR(4, 4757, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MINUS_DI", 0, 3, 4, i); __PYX_ERR(4, 4757, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4617, __pyx_L3_error) + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4757, __pyx_L3_error) CYTHON_FALLTHROUGH; - case 1: + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4757, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4757, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4617, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4757, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4619, __pyx_L3_error) + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4759, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("SMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4617, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MINUS_DI", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 4757, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINUS_DI", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4619, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_296SMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 4759, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 4759, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 4759, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_304MINUS_DI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -35683,7 +37186,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_296SMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_304MINUS_DI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -35695,35 +37198,49 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_296SMA(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + 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("SMA", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("MINUS_DI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4638, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4778, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4779, __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_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4640, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4780, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 4781, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4782, __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_SMA_Lookback(__pyx_v_timeperiod)); + __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(4, 4643, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4785, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MINUS_DI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4645, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4787, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -35736,11 +37253,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_296SMA(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.SMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINUS_DI", __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_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -35748,34 +37267,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_296SMA(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_299SQRT(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_307MINUS_DM(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_298SQRT, "SQRT(ndarray real)\n\nSQRT(real)\n\nVector Square Root (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_299SQRT = {"SQRT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_299SQRT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_298SQRT}; -static PyObject *__pyx_pw_5talib_7_ta_lib_299SQRT(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_306MINUS_DM, "MINUS_DM(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nMINUS_DM(high, low[, timeperiod=?])\n\nMinus Directional Movement (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low']\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_307MINUS_DM = {"MINUS_DM", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_307MINUS_DM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_306MINUS_DM}; +static PyObject *__pyx_pw_5talib_7_ta_lib_307MINUS_DM(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("SQRT (wrapper)", 0); + __Pyx_RefNannySetupContext("MINUS_DM (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -35785,46 +37306,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4648, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4790, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4790, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4790, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4648, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4790, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SQRT", 0) < (0)) __PYX_ERR(4, 4648, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SQRT", 1, 1, 1, i); __PYX_ERR(4, 4648, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MINUS_DM", 0) < (0)) __PYX_ERR(4, 4790, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MINUS_DM", 0, 2, 3, i); __PYX_ERR(4, 4790, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4648, __pyx_L3_error) + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4790, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4790, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4790, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4792, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("SQRT", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 4648, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MINUS_DM", 0, 2, 3, __pyx_nargs); __PYX_ERR(4, 4790, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SQRT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINUS_DM", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4650, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_298SQRT(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 4792, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 4792, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_306MINUS_DM(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -35843,7 +37388,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_298SQRT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_306MINUS_DM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -35855,35 +37400,43 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_298SQRT(CYTHON_UNUSED PyObject *__pyx_ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + 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("SQRT", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("MINUS_DM", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4667, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4811, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4812, __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_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4669, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 4813, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4814, __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_SQRT_Lookback()); + __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(4, 4672, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4817, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MINUS_DM(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SQRT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4674, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4819, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -35896,11 +37449,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_298SQRT(CYTHON_UNUSED PyObject *__pyx_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.SQRT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINUS_DM", __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_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -35908,16 +37462,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_298SQRT(CYTHON_UNUSED PyObject *__pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_301STDDEV(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_309MOM(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_300STDDEV, "STDDEV(ndarray real, int timeperiod=-0x80000000, double nbdev=-4e37)\n\nSTDDEV(real[, timeperiod=?, nbdev=?])\n\nStandard Deviation (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 5\n nbdev: 1.0\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_301STDDEV = {"STDDEV", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_301STDDEV, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_300STDDEV}; -static PyObject *__pyx_pw_5talib_7_ta_lib_301STDDEV(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_308MOM, "MOM(ndarray real, int timeperiod=-0x80000000)\n\nMOM(real[, timeperiod=?])\n\nMomentum (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_309MOM = {"MOM", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_309MOM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_308MOM}; +static PyObject *__pyx_pw_5talib_7_ta_lib_309MOM(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -35926,18 +37480,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds ) { PyArrayObject *__pyx_v_real = 0; int __pyx_v_timeperiod; - double __pyx_v_nbdev; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("STDDEV (wrapper)", 0); + __Pyx_RefNannySetupContext("MOM (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -35947,75 +37500,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4677, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4822, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4677, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4677, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4822, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4677, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4822, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "STDDEV", 0) < (0)) __PYX_ERR(4, 4677, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MOM", 0) < (0)) __PYX_ERR(4, 4822, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("STDDEV", 0, 1, 3, i); __PYX_ERR(4, 4677, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MOM", 0, 1, 2, i); __PYX_ERR(4, 4822, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4677, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4677, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4822, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4677, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4822, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4679, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4824, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } - if (values[2]) { - __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 4679, __pyx_L3_error) - } else { - __pyx_v_nbdev = ((double)((double)-4e37)); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("STDDEV", 0, 1, 3, __pyx_nargs); __PYX_ERR(4, 4677, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MOM", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4822, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.STDDEV", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4679, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_300STDDEV(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdev); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4824, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_308MOM(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -36034,7 +37574,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_300STDDEV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev) { +static PyObject *__pyx_pf_5talib_7_ta_lib_308MOM(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; @@ -36050,31 +37590,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_300STDDEV(CYTHON_UNUSED PyObject *__py int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("STDDEV", 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(4, 4699, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4843, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4701, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4845, __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_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(4, 4704, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4848, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_nbdev, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MOM(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STDDEV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4706, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MOM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4850, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -36087,7 +37627,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_300STDDEV(CYTHON_UNUSED PyObject *__py /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.STDDEV", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MOM", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -36099,41 +37639,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_300STDDEV(CYTHON_UNUSED PyObject *__py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_303STOCH(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_311MULT(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_302STOCH, "STOCH(ndarray high, ndarray low, ndarray close, int fastk_period=-0x80000000, int slowk_period=-0x80000000, int slowk_matype=0, int slowd_period=-0x80000000, int slowd_matype=0)\n\nSTOCH(high, low, close[, fastk_period=?, slowk_period=?, slowk_matype=?, slowd_period=?, slowd_matype=?])\n\nStochastic (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n fastk_period: 5\n slowk_period: 3\n slowk_matype: 0\n slowd_period: 3\n slowd_matype: 0\nOutputs:\n slowk\n slowd"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_303STOCH = {"STOCH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_303STOCH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_302STOCH}; -static PyObject *__pyx_pw_5talib_7_ta_lib_303STOCH(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_310MULT, "MULT(ndarray real0, ndarray real1)\n\nMULT(real0, real1)\n\nVector Arithmetic Mult (Math Operators)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_311MULT = {"MULT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_311MULT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_310MULT}; +static PyObject *__pyx_pw_5talib_7_ta_lib_311MULT(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_fastk_period; - int __pyx_v_slowk_period; - int __pyx_v_slowk_matype; - int __pyx_v_slowd_period; - int __pyx_v_slowd_matype; + PyArrayObject *__pyx_v_real0 = 0; + PyArrayObject *__pyx_v_real1 = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[8] = {0,0,0,0,0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("STOCH (wrapper)", 0); + __Pyx_RefNannySetupContext("MULT (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -36143,130 +37677,54 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_slowk_period,&__pyx_mstate_global->__pyx_n_u_slowk_matype,&__pyx_mstate_global->__pyx_n_u_slowd_period,&__pyx_mstate_global->__pyx_n_u_slowd_matype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4709, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4853, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 8: - values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(4, 4709, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 7: - values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(4, 4709, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 4709, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 4709, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4709, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4709, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4709, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4853, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4709, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4853, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "STOCH", 0) < (0)) __PYX_ERR(4, 4709, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("STOCH", 0, 3, 8, i); __PYX_ERR(4, 4709, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 8: - values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(4, 4709, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 7: - values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(4, 4709, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 4709, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 4709, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4709, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4709, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4709, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4709, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MULT", 0) < (0)) __PYX_ERR(4, 4853, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MULT", 1, 2, 2, i); __PYX_ERR(4, 4853, __pyx_L3_error) } } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4711, __pyx_L3_error) - } else { - __pyx_v_fastk_period = ((int)((int)-2147483648)); - } - if (values[4]) { - __pyx_v_slowk_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4711, __pyx_L3_error) - } else { - __pyx_v_slowk_period = ((int)((int)-2147483648)); - } - if (values[5]) { - __pyx_v_slowk_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowk_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4711, __pyx_L3_error) - } else { - __pyx_v_slowk_matype = ((int)((int)0)); - } - if (values[6]) { - __pyx_v_slowd_period = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_slowd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4711, __pyx_L3_error) - } else { - __pyx_v_slowd_period = ((int)((int)-2147483648)); - } - if (values[7]) { - __pyx_v_slowd_matype = __Pyx_PyLong_As_int(values[7]); if (unlikely((__pyx_v_slowd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4711, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_slowd_matype = ((int)((int)0)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4853, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4853, __pyx_L3_error) } + __pyx_v_real0 = ((PyArrayObject *)values[0]); + __pyx_v_real1 = ((PyArrayObject *)values[1]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("STOCH", 0, 3, 8, __pyx_nargs); __PYX_ERR(4, 4709, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MULT", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4853, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.STOCH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MULT", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 4711, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 4711, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 4711, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_302STOCH(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(4, 4855, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(4, 4855, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_310MULT(__pyx_self, __pyx_v_real0, __pyx_v_real1); /* function exit code */ goto __pyx_L0; @@ -36285,7 +37743,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_302STOCH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_slowk_period, int __pyx_v_slowk_matype, int __pyx_v_slowd_period, int __pyx_v_slowd_matype) { +static PyObject *__pyx_pf_5talib_7_ta_lib_310MULT(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; @@ -36293,8 +37751,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_302STOCH(CYTHON_UNUSED PyObject *__pyx TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outslowk = 0; - PyArrayObject *__pyx_v_outslowd = 0; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -36303,77 +37760,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_302STOCH(CYTHON_UNUSED PyObject *__pyx 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(4, 4736, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 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_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4737, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4873, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4738, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4874, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 4739, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 4875, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4740, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4876, __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(4, 4743, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outslowk = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __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(4, 4744, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4879, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outslowd = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_STOCH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outslowk)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outslowd)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_MULT(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4746, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MULT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4881, __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(4, 4747, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_outslowk); - __Pyx_GIVEREF((PyObject *)__pyx_v_outslowk); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outslowk)) != (0)) __PYX_ERR(4, 4747, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outslowd); - __Pyx_GIVEREF((PyObject *)__pyx_v_outslowd); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outslowd)) != (0)) __PYX_ERR(4, 4747, __pyx_L1_error); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; + __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.STOCH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MULT", __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_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; @@ -36381,16 +37817,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_302STOCH(CYTHON_UNUSED PyObject *__pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_305STOCHF(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_313NATR(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_304STOCHF, "STOCHF(ndarray high, ndarray low, ndarray close, int fastk_period=-0x80000000, int fastd_period=-0x80000000, int fastd_matype=0)\n\nSTOCHF(high, low, close[, fastk_period=?, fastd_period=?, fastd_matype=?])\n\nStochastic Fast (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n fastk_period: 5\n fastd_period: 3\n fastd_matype: 0\nOutputs:\n fastk\n fastd"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_305STOCHF = {"STOCHF", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_305STOCHF, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_304STOCHF}; -static PyObject *__pyx_pw_5talib_7_ta_lib_305STOCHF(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_312NATR, "NATR(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nNATR(high, low, close[, timeperiod=?])\n\nNormalized Average True Range (Volatility Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_313NATR = {"NATR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_313NATR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_312NATR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_313NATR(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -36400,20 +37836,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; - int __pyx_v_fastk_period; - int __pyx_v_fastd_period; - int __pyx_v_fastd_matype; + int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[6] = {0,0,0,0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("STOCHF (wrapper)", 0); + __Pyx_RefNannySetupContext("NATR (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -36423,64 +37857,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_fastd_period,&__pyx_mstate_global->__pyx_n_u_fastd_matype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4749, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4884, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 4749, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 4749, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4749, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4884, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4749, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4884, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4749, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4884, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4749, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4884, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "STOCHF", 0) < (0)) __PYX_ERR(4, 4749, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "NATR", 0) < (0)) __PYX_ERR(4, 4884, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("STOCHF", 0, 3, 6, i); __PYX_ERR(4, 4749, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("NATR", 0, 3, 4, i); __PYX_ERR(4, 4884, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 4749, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 4749, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4749, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4884, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4749, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4884, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4749, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4884, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4749, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4884, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -36489,38 +37907,28 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = ((PyArrayObject *)values[1]); __pyx_v_close = ((PyArrayObject *)values[2]); if (values[3]) { - __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4751, __pyx_L3_error) - } else { - __pyx_v_fastk_period = ((int)((int)-2147483648)); - } - if (values[4]) { - __pyx_v_fastd_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4751, __pyx_L3_error) - } else { - __pyx_v_fastd_period = ((int)((int)-2147483648)); - } - if (values[5]) { - __pyx_v_fastd_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_fastd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4751, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4886, __pyx_L3_error) } else { - __pyx_v_fastd_matype = ((int)((int)0)); + __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("STOCHF", 0, 3, 6, __pyx_nargs); __PYX_ERR(4, 4749, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("NATR", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 4884, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.STOCHF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.NATR", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 4751, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 4751, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 4751, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_304STOCHF(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 4886, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 4886, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 4886, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_312NATR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -36539,7 +37947,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_304STOCHF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype) { +static PyObject *__pyx_pf_5talib_7_ta_lib_312NATR(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; @@ -36547,8 +37955,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_304STOCHF(CYTHON_UNUSED PyObject *__py TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outfastk = 0; - PyArrayObject *__pyx_v_outfastd = 0; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -36557,74 +37964,60 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_304STOCHF(CYTHON_UNUSED PyObject *__py int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("STOCHF", 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(4, 4774, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4905, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4775, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4906, __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(4, 4776, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4907, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 4777, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 4908, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4778, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4909, __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(4, 4781, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outfastk = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __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(4, 4782, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4912, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outfastd = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_STOCHF(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outfastk)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outfastd)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_NATR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHF, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4784, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NATR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4914, __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(4, 4785, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_outfastk); - __Pyx_GIVEREF((PyObject *)__pyx_v_outfastk); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outfastk)) != (0)) __PYX_ERR(4, 4785, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outfastd); - __Pyx_GIVEREF((PyObject *)__pyx_v_outfastd); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outfastd)) != (0)) __PYX_ERR(4, 4785, __pyx_L1_error); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; + __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.STOCHF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.NATR", __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_outreal); __Pyx_XDECREF((PyObject *)__pyx_v_high); __Pyx_XDECREF((PyObject *)__pyx_v_low); __Pyx_XDECREF((PyObject *)__pyx_v_close); @@ -36635,38 +38028,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_304STOCHF(CYTHON_UNUSED PyObject *__py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_307STOCHRSI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_315NVI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_306STOCHRSI, "STOCHRSI(ndarray real, int timeperiod=-0x80000000, int fastk_period=-0x80000000, int fastd_period=-0x80000000, int fastd_matype=0)\n\nSTOCHRSI(real[, timeperiod=?, fastk_period=?, fastd_period=?, fastd_matype=?])\n\nStochastic Relative Strength Index (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\n fastk_period: 5\n fastd_period: 3\n fastd_matype: 0\nOutputs:\n fastk\n fastd"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_307STOCHRSI = {"STOCHRSI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_307STOCHRSI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_306STOCHRSI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_307STOCHRSI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_314NVI, "NVI(ndarray close, ndarray volume)\n\nNVI(close, volume)\n\nNegative Volume Index (Volume Indicators)\n\nInputs:\n prices: ['close', 'volume']\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_315NVI = {"NVI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_315NVI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_314NVI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_315NVI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - int __pyx_v_fastk_period; - int __pyx_v_fastd_period; - int __pyx_v_fastd_matype; + PyArrayObject *__pyx_v_close = 0; + PyArrayObject *__pyx_v_volume = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("STOCHRSI (wrapper)", 0); + __Pyx_RefNannySetupContext("NVI (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -36676,101 +38066,54 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_fastd_period,&__pyx_mstate_global->__pyx_n_u_fastd_matype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4787, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4917, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 4787, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4787, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4787, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4787, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4917, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4787, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4917, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "STOCHRSI", 0) < (0)) __PYX_ERR(4, 4787, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("STOCHRSI", 0, 1, 5, i); __PYX_ERR(4, 4787, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 4787, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4787, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4787, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4787, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4787, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "NVI", 0) < (0)) __PYX_ERR(4, 4917, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("NVI", 1, 2, 2, i); __PYX_ERR(4, 4917, __pyx_L3_error) } } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4789, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - if (values[2]) { - __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4789, __pyx_L3_error) - } else { - __pyx_v_fastk_period = ((int)((int)-2147483648)); - } - if (values[3]) { - __pyx_v_fastd_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4789, __pyx_L3_error) - } else { - __pyx_v_fastd_period = ((int)((int)-2147483648)); - } - if (values[4]) { - __pyx_v_fastd_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4789, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_fastd_matype = ((int)((int)0)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4917, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4917, __pyx_L3_error) } + __pyx_v_close = ((PyArrayObject *)values[0]); + __pyx_v_volume = ((PyArrayObject *)values[1]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("STOCHRSI", 0, 1, 5, __pyx_nargs); __PYX_ERR(4, 4787, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("NVI", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4917, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.STOCHRSI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.NVI", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4789, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_306STOCHRSI(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 4919, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(4, 4919, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_314NVI(__pyx_self, __pyx_v_close, __pyx_v_volume); /* function exit code */ goto __pyx_L0; @@ -36789,7 +38132,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_306STOCHRSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype) { +static PyObject *__pyx_pf_5talib_7_ta_lib_314NVI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -36797,71 +38140,65 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_306STOCHRSI(CYTHON_UNUSED PyObject *__ TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outfastk = 0; - PyArrayObject *__pyx_v_outfastd = 0; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + 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("STOCHRSI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("NVI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_INCREF((PyObject *)__pyx_v_volume); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4813, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4936, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4937, __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_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4815, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 4938, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4939, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_STOCHRSI_Lookback(__pyx_v_timeperiod, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype)); + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4818, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outfastk = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_lookback = (__pyx_v_begidx + TA_NVI_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(4, 4819, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4942, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outfastd = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_STOCHRSI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outfastk)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outfastd)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_NVI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHRSI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4821, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NVI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4944, __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(4, 4822, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_outfastk); - __Pyx_GIVEREF((PyObject *)__pyx_v_outfastk); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outfastk)) != (0)) __PYX_ERR(4, 4822, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outfastd); - __Pyx_GIVEREF((PyObject *)__pyx_v_outfastd); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outfastd)) != (0)) __PYX_ERR(4, 4822, __pyx_L1_error); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; + __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.STOCHRSI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.NVI", __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_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF((PyObject *)__pyx_v_volume); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -36869,24 +38206,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_306STOCHRSI(CYTHON_UNUSED PyObject *__ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_309SUB(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_317OBV(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_308SUB, "SUB(ndarray real0, ndarray real1)\n\nSUB(real0, real1)\n\nVector Arithmetic Subtraction (Math Operators)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_309SUB = {"SUB", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_309SUB, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_308SUB}; -static PyObject *__pyx_pw_5talib_7_ta_lib_309SUB(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_316OBV, "OBV(ndarray real, ndarray volume)\n\nOBV(real, volume)\n\nOn Balance Volume (Volume Indicators)\n\nInputs:\n real: (any ndarray)\n prices: ['volume']\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_317OBV = {"OBV", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_317OBV, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_316OBV}; +static PyObject *__pyx_pw_5talib_7_ta_lib_317OBV(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real0 = 0; - PyArrayObject *__pyx_v_real1 = 0; + PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_volume = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -36897,7 +38234,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("SUB (wrapper)", 0); + __Pyx_RefNannySetupContext("OBV (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -36907,54 +38244,54 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4824, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4947, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4824, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4947, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4824, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4947, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SUB", 0) < (0)) __PYX_ERR(4, 4824, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "OBV", 0) < (0)) __PYX_ERR(4, 4947, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SUB", 1, 2, 2, i); __PYX_ERR(4, 4824, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("OBV", 1, 2, 2, i); __PYX_ERR(4, 4947, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4824, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4947, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4824, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4947, __pyx_L3_error) } - __pyx_v_real0 = ((PyArrayObject *)values[0]); - __pyx_v_real1 = ((PyArrayObject *)values[1]); + __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_volume = ((PyArrayObject *)values[1]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("SUB", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4824, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("OBV", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4947, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SUB", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.OBV", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(4, 4826, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(4, 4826, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_308SUB(__pyx_self, __pyx_v_real0, __pyx_v_real1); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4949, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(4, 4949, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_316OBV(__pyx_self, __pyx_v_real, __pyx_v_volume); /* function exit code */ goto __pyx_L0; @@ -36973,7 +38310,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_308SUB(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1) { +static PyObject *__pyx_pf_5talib_7_ta_lib_316OBV(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; @@ -36990,38 +38327,38 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_308SUB(CYTHON_UNUSED PyObject *__pyx_s int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("SUB", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real0); - __Pyx_INCREF((PyObject *)__pyx_v_real1); + __Pyx_RefNannySetupContext("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_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4844, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4967, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__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_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4845, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4968, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 4846, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 4969, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4847, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4970, __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_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(4, 4850, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4973, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_OBV(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUB, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4852, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_OBV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4975, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -37034,12 +38371,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_308SUB(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.SUB", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.OBV", __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_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_volume); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -37047,16 +38384,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_308SUB(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_311SUM(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_319PERCENTILE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_310SUM, "SUM(ndarray real, int timeperiod=-0x80000000)\n\nSUM(real[, timeperiod=?])\n\nSummation (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_311SUM = {"SUM", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_311SUM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_310SUM}; -static PyObject *__pyx_pw_5talib_7_ta_lib_311SUM(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_318PERCENTILE, "PERCENTILE(ndarray real, int timeperiod=-0x80000000, double percentile=50.0)\n\nPERCENTILE(real[, timeperiod=?, percentile=?])\n\nPercentile (nearest rank) (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\n percentile: 50.0\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_319PERCENTILE = {"PERCENTILE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_319PERCENTILE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_318PERCENTILE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_319PERCENTILE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -37065,17 +38402,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds ) { PyArrayObject *__pyx_v_real = 0; int __pyx_v_timeperiod; + double __pyx_v_percentile; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("SUM (wrapper)", 0); + __Pyx_RefNannySetupContext("PERCENTILE (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -37085,62 +38423,75 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_percentile,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4855, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4978, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4978, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4855, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4978, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4855, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4978, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SUM", 0) < (0)) __PYX_ERR(4, 4855, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PERCENTILE", 0) < (0)) __PYX_ERR(4, 4978, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SUM", 0, 1, 2, i); __PYX_ERR(4, 4855, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PERCENTILE", 0, 1, 3, i); __PYX_ERR(4, 4978, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4978, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4855, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4978, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4855, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4978, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4857, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4980, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } + if (values[2]) { + __pyx_v_percentile = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_percentile == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 4980, __pyx_L3_error) + } else { + __pyx_v_percentile = ((double)((double)50.0)); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("SUM", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4855, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("PERCENTILE", 0, 1, 3, __pyx_nargs); __PYX_ERR(4, 4978, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SUM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PERCENTILE", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4857, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_310SUM(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4980, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_318PERCENTILE(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_percentile); /* function exit code */ goto __pyx_L0; @@ -37159,7 +38510,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_310SUM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_318PERCENTILE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_percentile) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -37175,31 +38526,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_310SUM(CYTHON_UNUSED PyObject *__pyx_s int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("SUM", 0); + __Pyx_RefNannySetupContext("PERCENTILE", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4876, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5000, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4878, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5002, __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_v_lookback = (__pyx_v_begidx + TA_PERCENTILE_Lookback(__pyx_v_timeperiod, __pyx_v_percentile)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4881, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5005, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_PERCENTILE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_percentile, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4883, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTILE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5007, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -37212,7 +38563,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_310SUM(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.SUM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PERCENTILE", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -37224,16 +38575,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_310SUM(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_313T3(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_321PERCENTRANK(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_312T3, "T3(ndarray real, int timeperiod=-0x80000000, double vfactor=-4e37)\n\nT3(real[, timeperiod=?, vfactor=?])\n\nTriple Exponential Moving Average (T3) (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 5\n vfactor: 0.7\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_313T3 = {"T3", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_313T3, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_312T3}; -static PyObject *__pyx_pw_5talib_7_ta_lib_313T3(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_320PERCENTRANK, "PERCENTRANK(ndarray real, int timeperiod=-0x80000000)\n\nPERCENTRANK(real[, timeperiod=?])\n\nPercent Rank (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 100\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_321PERCENTRANK = {"PERCENTRANK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_321PERCENTRANK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_320PERCENTRANK}; +static PyObject *__pyx_pw_5talib_7_ta_lib_321PERCENTRANK(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -37242,18 +38593,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds ) { PyArrayObject *__pyx_v_real = 0; int __pyx_v_timeperiod; - double __pyx_v_vfactor; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("T3 (wrapper)", 0); + __Pyx_RefNannySetupContext("PERCENTRANK (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -37263,75 +38613,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_vfactor,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4886, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5010, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4886, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4886, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5010, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4886, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5010, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "T3", 0) < (0)) __PYX_ERR(4, 4886, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PERCENTRANK", 0) < (0)) __PYX_ERR(4, 5010, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("T3", 0, 1, 3, i); __PYX_ERR(4, 4886, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PERCENTRANK", 0, 1, 2, i); __PYX_ERR(4, 5010, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4886, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4886, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5010, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4886, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5010, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4888, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5012, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } - if (values[2]) { - __pyx_v_vfactor = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_vfactor == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 4888, __pyx_L3_error) - } else { - __pyx_v_vfactor = ((double)((double)-4e37)); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("T3", 0, 1, 3, __pyx_nargs); __PYX_ERR(4, 4886, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("PERCENTRANK", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 5010, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.T3", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PERCENTRANK", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4888, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_312T3(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_vfactor); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 5012, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_320PERCENTRANK(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -37350,7 +38687,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_312T3(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_vfactor) { +static PyObject *__pyx_pf_5talib_7_ta_lib_320PERCENTRANK(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; @@ -37366,31 +38703,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_312T3(CYTHON_UNUSED PyObject *__pyx_se int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("T3", 0); + __Pyx_RefNannySetupContext("PERCENTRANK", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4908, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5031, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4910, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5033, __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_v_lookback = (__pyx_v_begidx + TA_PERCENTRANK_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(4, 4913, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5036, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_vfactor, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_PERCENTRANK(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_T3, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4915, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTRANK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5038, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -37403,7 +38740,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_312T3(CYTHON_UNUSED PyObject *__pyx_se /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.T3", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PERCENTRANK", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -37415,34 +38752,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_312T3(CYTHON_UNUSED PyObject *__pyx_se /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_315TAN(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_323PLUS_DI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_314TAN, "TAN(ndarray real)\n\nTAN(real)\n\nVector Trigonometric Tan (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_315TAN = {"TAN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_315TAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_314TAN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_315TAN(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_322PLUS_DI, "PLUS_DI(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nPLUS_DI(high, low, close[, timeperiod=?])\n\nPlus Directional Indicator (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_323PLUS_DI = {"PLUS_DI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_323PLUS_DI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_322PLUS_DI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_323PLUS_DI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("TAN (wrapper)", 0); + __Pyx_RefNannySetupContext("PLUS_DI (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -37452,46 +38792,78 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4918, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5041, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 5041, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5041, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5041, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4918, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5041, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TAN", 0) < (0)) __PYX_ERR(4, 4918, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TAN", 1, 1, 1, i); __PYX_ERR(4, 4918, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PLUS_DI", 0) < (0)) __PYX_ERR(4, 5041, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PLUS_DI", 0, 3, 4, i); __PYX_ERR(4, 5041, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4918, __pyx_L3_error) + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 5041, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5041, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5041, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5041, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5043, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("TAN", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 4918, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("PLUS_DI", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 5041, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TAN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PLUS_DI", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4920, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_314TAN(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 5043, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 5043, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 5043, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_322PLUS_DI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -37510,7 +38882,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_314TAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_322PLUS_DI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -37522,35 +38894,49 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_314TAN(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + 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("TAN", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("PLUS_DI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4937, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5062, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5063, __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_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4939, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5064, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 5065, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5066, __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_TAN_Lookback()); + __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(4, 4942, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5069, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_PLUS_DI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4944, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5071, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -37563,11 +38949,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_314TAN(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.TAN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PLUS_DI", __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_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -37575,34 +38963,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_314TAN(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_317TANH(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_325PLUS_DM(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_316TANH, "TANH(ndarray real)\n\nTANH(real)\n\nVector Trigonometric Tanh (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_317TANH = {"TANH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_317TANH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_316TANH}; -static PyObject *__pyx_pw_5talib_7_ta_lib_317TANH(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_324PLUS_DM, "PLUS_DM(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nPLUS_DM(high, low[, timeperiod=?])\n\nPlus Directional Movement (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low']\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_325PLUS_DM = {"PLUS_DM", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_325PLUS_DM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_324PLUS_DM}; +static PyObject *__pyx_pw_5talib_7_ta_lib_325PLUS_DM(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("TANH (wrapper)", 0); + __Pyx_RefNannySetupContext("PLUS_DM (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -37612,46 +39002,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4947, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5074, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5074, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5074, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4947, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5074, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TANH", 0) < (0)) __PYX_ERR(4, 4947, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TANH", 1, 1, 1, i); __PYX_ERR(4, 4947, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PLUS_DM", 0) < (0)) __PYX_ERR(4, 5074, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PLUS_DM", 0, 2, 3, i); __PYX_ERR(4, 5074, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4947, __pyx_L3_error) + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5074, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5074, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5074, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5076, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("TANH", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 4947, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("PLUS_DM", 0, 2, 3, __pyx_nargs); __PYX_ERR(4, 5074, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TANH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PLUS_DM", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4949, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_316TANH(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 5076, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 5076, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_324PLUS_DM(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -37670,7 +39084,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_316TANH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_324PLUS_DM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -37682,35 +39096,43 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_316TANH(CYTHON_UNUSED PyObject *__pyx_ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + 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("TANH", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __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_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4966, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5095, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5096, __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_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4968, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 5097, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5098, __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_TANH_Lookback()); + __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(4, 4971, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5101, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_PLUS_DM(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TANH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4973, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5103, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -37723,11 +39145,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_316TANH(CYTHON_UNUSED PyObject *__pyx_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.TANH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PLUS_DM", __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_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -37735,16 +39158,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_316TANH(CYTHON_UNUSED PyObject *__pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_319TEMA(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_327PPO(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_318TEMA, "TEMA(ndarray real, int timeperiod=-0x80000000)\n\nTEMA(real[, timeperiod=?])\n\nTriple Exponential Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_319TEMA = {"TEMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_319TEMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_318TEMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_319TEMA(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_326PPO, "PPO(ndarray real, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int matype=1)\n\nPPO(real[, fastperiod=?, slowperiod=?, matype=?])\n\nPercentage Price Oscillator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastperiod: 12\n slowperiod: 26\n matype: 1 (Exponential Moving Average)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_327PPO = {"PPO", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_327PPO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_326PPO}; +static PyObject *__pyx_pw_5talib_7_ta_lib_327PPO(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -37752,18 +39175,20 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + int __pyx_v_matype; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("TEMA (wrapper)", 0); + __Pyx_RefNannySetupContext("PPO (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -37773,62 +39198,88 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4976, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5106, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 5106, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5106, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4976, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5106, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4976, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5106, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TEMA", 0) < (0)) __PYX_ERR(4, 4976, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PPO", 0) < (0)) __PYX_ERR(4, 5106, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TEMA", 0, 1, 2, i); __PYX_ERR(4, 4976, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PPO", 0, 1, 4, i); __PYX_ERR(4, 5106, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 5106, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5106, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4976, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5106, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4976, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5106, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4978, __pyx_L3_error) + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5108, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + __pyx_v_fastperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5108, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)((int)-2147483648)); + } + if (values[3]) { + __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5108, __pyx_L3_error) + } else { + __pyx_v_matype = ((int)((int)1)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("TEMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4976, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("PPO", 0, 1, 4, __pyx_nargs); __PYX_ERR(4, 5106, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TEMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4978, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_318TEMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 5108, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_326PPO(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype); /* function exit code */ goto __pyx_L0; @@ -37847,7 +39298,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_318TEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_326PPO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -37863,31 +39314,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_318TEMA(CYTHON_UNUSED PyObject *__pyx_ int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("TEMA", 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(4, 4997, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5129, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4999, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5131, __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_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(4, 5002, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5134, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_PPO(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TEMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5004, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PPO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5136, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -37900,7 +39351,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_318TEMA(CYTHON_UNUSED PyObject *__pyx_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.TEMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PPO", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -37912,36 +39363,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_318TEMA(CYTHON_UNUSED PyObject *__pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_321TRANGE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_329PVI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_320TRANGE, "TRANGE(ndarray high, ndarray low, ndarray close)\n\nTRANGE(high, low, close)\n\nTrue Range (Volatility Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_321TRANGE = {"TRANGE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_321TRANGE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_320TRANGE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_321TRANGE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_328PVI, "PVI(ndarray close, ndarray volume)\n\nPVI(close, volume)\n\nPositive Volume Index (Volume Indicators)\n\nInputs:\n prices: ['close', 'volume']\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_329PVI = {"PVI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_329PVI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_328PVI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_329PVI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; + PyArrayObject *__pyx_v_volume = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("TRANGE (wrapper)", 0); + __Pyx_RefNannySetupContext("PVI (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -37951,62 +39401,54 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5007, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5139, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5007, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5007, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5139, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5007, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5139, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TRANGE", 0) < (0)) __PYX_ERR(4, 5007, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TRANGE", 1, 3, 3, i); __PYX_ERR(4, 5007, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PVI", 0) < (0)) __PYX_ERR(4, 5139, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PVI", 1, 2, 2, i); __PYX_ERR(4, 5139, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5007, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5139, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5007, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5007, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5139, __pyx_L3_error) } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[0]); + __pyx_v_volume = ((PyArrayObject *)values[1]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("TRANGE", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 5007, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("PVI", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 5139, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TRANGE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PVI", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 5009, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 5009, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 5009, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_320TRANGE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 5141, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(4, 5141, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_328PVI(__pyx_self, __pyx_v_close, __pyx_v_volume); /* function exit code */ goto __pyx_L0; @@ -38025,7 +39467,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_320TRANGE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_328PVI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -38042,44 +39484,38 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_320TRANGE(CYTHON_UNUSED PyObject *__py 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_RefNannySetupContext("PVI", 0); __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_INCREF((PyObject *)__pyx_v_volume); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5026, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5027, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5158, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5028, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5159, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 5029, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 5160, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5030, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5161, __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_v_lookback = (__pyx_v_begidx + TA_PVI_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(4, 5033, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5164, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_PVI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRANGE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5035, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5166, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -38092,13 +39528,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_320TRANGE(CYTHON_UNUSED PyObject *__py /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.TRANGE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PVI", __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; @@ -38106,35 +39541,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_320TRANGE(CYTHON_UNUSED PyObject *__py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_323TRIMA(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_331PVO(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_322TRIMA, "TRIMA(ndarray real, int timeperiod=-0x80000000)\n\nTRIMA(real[, timeperiod=?])\n\nTriangular Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_323TRIMA = {"TRIMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_323TRIMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_322TRIMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_323TRIMA(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_330PVO, "PVO(ndarray volume, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int matype=1)\n\nPVO(volume[, fastperiod=?, slowperiod=?, matype=?])\n\nPercentage Volume Oscillator (Volume Indicators)\n\nInputs:\n prices: ['volume']\nParameters:\n fastperiod: 12\n slowperiod: 26\n matype: 1 (Exponential Moving Average)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_331PVO = {"PVO", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_331PVO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_330PVO}; +static PyObject *__pyx_pw_5talib_7_ta_lib_331PVO(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyArrayObject *__pyx_v_volume = 0; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + int __pyx_v_matype; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("TRIMA (wrapper)", 0); + __Pyx_RefNannySetupContext("PVO (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -38144,62 +39581,88 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5038, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5169, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 5169, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5169, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5038, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5169, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5038, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5169, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TRIMA", 0) < (0)) __PYX_ERR(4, 5038, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PVO", 0) < (0)) __PYX_ERR(4, 5169, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TRIMA", 0, 1, 2, i); __PYX_ERR(4, 5038, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PVO", 0, 1, 4, i); __PYX_ERR(4, 5169, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 5169, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5169, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5038, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5169, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5038, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5169, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_volume = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5040, __pyx_L3_error) + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5171, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + __pyx_v_fastperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5171, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)((int)-2147483648)); + } + if (values[3]) { + __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5171, __pyx_L3_error) + } else { + __pyx_v_matype = ((int)((int)1)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("TRIMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 5038, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("PVO", 0, 1, 4, __pyx_nargs); __PYX_ERR(4, 5169, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TRIMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PVO", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 5040, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_322TRIMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(4, 5171, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_330PVO(__pyx_self, __pyx_v_volume, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype); /* function exit code */ goto __pyx_L0; @@ -38218,7 +39681,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_322TRIMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_330PVO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_volume, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -38234,31 +39697,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_322TRIMA(CYTHON_UNUSED PyObject *__pyx int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("TRIMA", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("PVO", 0); + __Pyx_INCREF((PyObject *)__pyx_v_volume); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5059, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_volume)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5061, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5194, __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_v_lookback = (__pyx_v_begidx + TA_PVO_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(4, 5064, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5197, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_PVO(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5066, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -38271,11 +39734,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_322TRIMA(CYTHON_UNUSED PyObject *__pyx /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.TRIMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PVO", __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; @@ -38283,24 +39746,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_322TRIMA(CYTHON_UNUSED PyObject *__pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_325TRIX(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_333PVT(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_324TRIX, "TRIX(ndarray real, int timeperiod=-0x80000000)\n\nTRIX(real[, timeperiod=?])\n\n1-day Rate-Of-Change (ROC) of a Triple Smooth EMA (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_325TRIX = {"TRIX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_325TRIX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_324TRIX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_325TRIX(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_332PVT, "PVT(ndarray close, ndarray volume)\n\nPVT(close, volume)\n\nPrice Volume Trend (Volume Indicators)\n\nInputs:\n prices: ['close', 'volume']\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_333PVT = {"PVT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_333PVT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_332PVT}; +static PyObject *__pyx_pw_5talib_7_ta_lib_333PVT(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyArrayObject *__pyx_v_close = 0; + PyArrayObject *__pyx_v_volume = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -38311,7 +39774,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("TRIX (wrapper)", 0); + __Pyx_RefNannySetupContext("PVT (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -38321,62 +39784,54 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5069, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5202, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5069, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5202, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5069, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5202, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TRIX", 0) < (0)) __PYX_ERR(4, 5069, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TRIX", 0, 1, 2, i); __PYX_ERR(4, 5069, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5069, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5069, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PVT", 0) < (0)) __PYX_ERR(4, 5202, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PVT", 1, 2, 2, i); __PYX_ERR(4, 5202, __pyx_L3_error) } } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5071, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5202, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5202, __pyx_L3_error) } + __pyx_v_close = ((PyArrayObject *)values[0]); + __pyx_v_volume = ((PyArrayObject *)values[1]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("TRIX", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 5069, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("PVT", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 5202, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TRIX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PVT", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 5071, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_324TRIX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 5204, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(4, 5204, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_332PVT(__pyx_self, __pyx_v_close, __pyx_v_volume); /* function exit code */ goto __pyx_L0; @@ -38395,7 +39850,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_324TRIX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_332PVT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -38407,35 +39862,43 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_324TRIX(CYTHON_UNUSED PyObject *__pyx_ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + 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("TRIX", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("PVT", 0); + __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_INCREF((PyObject *)__pyx_v_volume); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5090, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5221, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5222, __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_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5092, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 5223, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5224, __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_TRIX_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_PVT_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(4, 5095, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5227, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_PVT(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5097, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -38448,11 +39911,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_324TRIX(CYTHON_UNUSED PyObject *__pyx_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.TRIX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PVT", __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_close); + __Pyx_XDECREF((PyObject *)__pyx_v_volume); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -38460,35 +39924,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_324TRIX(CYTHON_UNUSED PyObject *__pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_327TSF(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_335QSTICK(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_326TSF, "TSF(ndarray real, int timeperiod=-0x80000000)\n\nTSF(real[, timeperiod=?])\n\nTime Series Forecast (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_327TSF = {"TSF", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_327TSF, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_326TSF}; -static PyObject *__pyx_pw_5talib_7_ta_lib_327TSF(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_334QSTICK, "QSTICK(ndarray open, ndarray close, int timeperiod=-0x80000000)\n\nQSTICK(open, close[, timeperiod=?])\n\nQstick (Momentum Indicators)\n\nInputs:\n prices: ['open', 'close']\nParameters:\n timeperiod: 10\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_335QSTICK = {"QSTICK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_335QSTICK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_334QSTICK}; +static PyObject *__pyx_pw_5talib_7_ta_lib_335QSTICK(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_close = 0; int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("TSF (wrapper)", 0); + __Pyx_RefNannySetupContext("QSTICK (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -38498,62 +39963,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5100, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5232, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5232, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5100, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5232, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5100, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5232, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TSF", 0) < (0)) __PYX_ERR(4, 5100, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TSF", 0, 1, 2, i); __PYX_ERR(4, 5100, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "QSTICK", 0) < (0)) __PYX_ERR(4, 5232, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("QSTICK", 0, 2, 3, i); __PYX_ERR(4, 5232, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5232, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5100, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5232, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5100, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5232, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5102, __pyx_L3_error) + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_close = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5234, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("TSF", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 5100, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("QSTICK", 0, 2, 3, __pyx_nargs); __PYX_ERR(4, 5232, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TSF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.QSTICK", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 5102, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_326TSF(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 5234, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 5234, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_334QSTICK(__pyx_self, __pyx_v_open, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -38572,7 +40045,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_326TSF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_334QSTICK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -38584,35 +40057,43 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_326TSF(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + 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("TSF", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("QSTICK", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5121, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5253, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5254, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5123, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_open, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 5255, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5256, __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_TSF_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_QSTICK_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(4, 5126, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5259, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_QSTICK(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSF, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5128, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_QSTICK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5261, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -38625,11 +40106,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_326TSF(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.TSF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.QSTICK", __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_open); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -38637,36 +40119,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_326TSF(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_329TYPPRICE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_337RMA(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_328TYPPRICE, "TYPPRICE(ndarray high, ndarray low, ndarray close)\n\nTYPPRICE(high, low, close)\n\nTypical Price (Price Transform)\n\nInputs:\n prices: ['high', 'low', 'close']\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_329TYPPRICE = {"TYPPRICE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_329TYPPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_328TYPPRICE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_329TYPPRICE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_336RMA, "RMA(ndarray real, int timeperiod=-0x80000000)\n\nRMA(real[, timeperiod=?])\n\nWilder's Smoothed Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_337RMA = {"RMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_337RMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_336RMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_337RMA(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("TYPPRICE (wrapper)", 0); + __Pyx_RefNannySetupContext("RMA (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -38676,62 +40157,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5131, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5264, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5131, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5131, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5264, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5131, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5264, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TYPPRICE", 0) < (0)) __PYX_ERR(4, 5131, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TYPPRICE", 1, 3, 3, i); __PYX_ERR(4, 5131, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "RMA", 0) < (0)) __PYX_ERR(4, 5264, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("RMA", 0, 1, 2, i); __PYX_ERR(4, 5264, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5131, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5131, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5131, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5264, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5264, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5266, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("TYPPRICE", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 5131, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("RMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 5264, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TYPPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RMA", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 5133, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 5133, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 5133, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_328TYPPRICE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 5266, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_336RMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -38750,7 +40231,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_328TYPPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_336RMA(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; @@ -38762,49 +40243,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_328TYPPRICE(CYTHON_UNUSED PyObject *__ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + npy_int __pyx_t_2; 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(4, 5150, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5151, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("RMA", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5152, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5285, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 5153, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5154, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5287, __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_TYPPRICE_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_RMA_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(4, 5157, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5290, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_RMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TYPPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5159, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5292, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -38817,13 +40284,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_328TYPPRICE(CYTHON_UNUSED PyObject *__ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.TYPPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RMA", __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_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -38831,39 +40296,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_328TYPPRICE(CYTHON_UNUSED PyObject *__ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_331ULTOSC(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_339ROC(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_330ULTOSC, "ULTOSC(ndarray high, ndarray low, ndarray close, int timeperiod1=-0x80000000, int timeperiod2=-0x80000000, int timeperiod3=-0x80000000)\n\nULTOSC(high, low, close[, timeperiod1=?, timeperiod2=?, timeperiod3=?])\n\nUltimate Oscillator (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n timeperiod1: 7\n timeperiod2: 14\n timeperiod3: 28\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_331ULTOSC = {"ULTOSC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_331ULTOSC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_330ULTOSC}; -static PyObject *__pyx_pw_5talib_7_ta_lib_331ULTOSC(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_338ROC, "ROC(ndarray real, int timeperiod=-0x80000000)\n\nROC(real[, timeperiod=?])\n\nRate of change : ((real/prevPrice)-1)*100 (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_339ROC = {"ROC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_339ROC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_338ROC}; +static PyObject *__pyx_pw_5talib_7_ta_lib_339ROC(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_timeperiod1; - int __pyx_v_timeperiod2; - int __pyx_v_timeperiod3; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[6] = {0,0,0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("ULTOSC (wrapper)", 0); + __Pyx_RefNannySetupContext("ROC (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -38873,104 +40334,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod1,&__pyx_mstate_global->__pyx_n_u_timeperiod2,&__pyx_mstate_global->__pyx_n_u_timeperiod3,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5162, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5295, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 5162, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 5162, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 5162, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5162, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5162, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5295, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5162, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5295, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ULTOSC", 0) < (0)) __PYX_ERR(4, 5162, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ULTOSC", 0, 3, 6, i); __PYX_ERR(4, 5162, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ROC", 0) < (0)) __PYX_ERR(4, 5295, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ROC", 0, 1, 2, i); __PYX_ERR(4, 5295, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 5162, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 5162, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 5162, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5162, __pyx_L3_error) + case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5162, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5295, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5162, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5295, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod1 = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5164, __pyx_L3_error) - } else { - __pyx_v_timeperiod1 = ((int)((int)-2147483648)); - } - if (values[4]) { - __pyx_v_timeperiod2 = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5164, __pyx_L3_error) - } else { - __pyx_v_timeperiod2 = ((int)((int)-2147483648)); - } - if (values[5]) { - __pyx_v_timeperiod3 = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_timeperiod3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5164, __pyx_L3_error) + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5297, __pyx_L3_error) } else { - __pyx_v_timeperiod3 = ((int)((int)-2147483648)); + __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ULTOSC", 0, 3, 6, __pyx_nargs); __PYX_ERR(4, 5162, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("ROC", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 5295, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ULTOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROC", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 5164, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 5164, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 5164, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_330ULTOSC(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 5297, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_338ROC(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -38989,7 +40408,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_330ULTOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod1, int __pyx_v_timeperiod2, int __pyx_v_timeperiod3) { +static PyObject *__pyx_pf_5talib_7_ta_lib_338ROC(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; @@ -39001,49 +40420,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_330ULTOSC(CYTHON_UNUSED PyObject *__py PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + npy_int __pyx_t_2; 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(4, 5185, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5186, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 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_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5187, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5316, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 5188, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5189, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5318, __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_ULTOSC_Lookback(__pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3)); + __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(4, 5192, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5321, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_ROC(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ULTOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5194, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5323, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -39056,13 +40461,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_330ULTOSC(CYTHON_UNUSED PyObject *__py /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.ULTOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROC", __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_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -39070,16 +40473,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_330ULTOSC(CYTHON_UNUSED PyObject *__py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_333VAR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_341ROCP(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_332VAR, "VAR(ndarray real, int timeperiod=-0x80000000, double nbdev=-4e37)\n\nVAR(real[, timeperiod=?, nbdev=?])\n\nVariance (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 5\n nbdev: 1.0\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_333VAR = {"VAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_333VAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_332VAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_333VAR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_340ROCP, "ROCP(ndarray real, int timeperiod=-0x80000000)\n\nROCP(real[, timeperiod=?])\n\nRate of change Percentage: (real-prevPrice)/prevPrice (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_341ROCP = {"ROCP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_341ROCP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_340ROCP}; +static PyObject *__pyx_pw_5talib_7_ta_lib_341ROCP(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -39088,18 +40491,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds ) { PyArrayObject *__pyx_v_real = 0; int __pyx_v_timeperiod; - double __pyx_v_nbdev; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("VAR (wrapper)", 0); + __Pyx_RefNannySetupContext("ROCP (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -39109,75 +40511,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5197, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5326, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5197, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5197, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5326, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5197, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5326, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "VAR", 0) < (0)) __PYX_ERR(4, 5197, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ROCP", 0) < (0)) __PYX_ERR(4, 5326, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("VAR", 0, 1, 3, i); __PYX_ERR(4, 5197, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ROCP", 0, 1, 2, i); __PYX_ERR(4, 5326, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5197, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5197, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5326, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5197, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5326, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5199, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5328, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } - if (values[2]) { - __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 5199, __pyx_L3_error) - } else { - __pyx_v_nbdev = ((double)((double)-4e37)); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("VAR", 0, 1, 3, __pyx_nargs); __PYX_ERR(4, 5197, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("ROCP", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 5326, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.VAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROCP", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 5199, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_332VAR(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdev); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 5328, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_340ROCP(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -39196,7 +40585,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_332VAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev) { +static PyObject *__pyx_pf_5talib_7_ta_lib_340ROCP(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; @@ -39212,31 +40601,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_332VAR(CYTHON_UNUSED PyObject *__pyx_s int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("VAR", 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(4, 5219, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5347, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5221, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5349, __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_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(4, 5224, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5352, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_nbdev, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_ROCP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5226, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5354, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -39249,7 +40638,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_332VAR(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.VAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROCP", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -39261,36 +40650,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_332VAR(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_335WCLPRICE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_343ROCR(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_334WCLPRICE, "WCLPRICE(ndarray high, ndarray low, ndarray close)\n\nWCLPRICE(high, low, close)\n\nWeighted Close Price (Price Transform)\n\nInputs:\n prices: ['high', 'low', 'close']\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_335WCLPRICE = {"WCLPRICE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_335WCLPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_334WCLPRICE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_335WCLPRICE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_342ROCR, "ROCR(ndarray real, int timeperiod=-0x80000000)\n\nROCR(real[, timeperiod=?])\n\nRate of change ratio: (real/prevPrice) (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_343ROCR = {"ROCR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_343ROCR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_342ROCR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_343ROCR(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("WCLPRICE (wrapper)", 0); + __Pyx_RefNannySetupContext("ROCR (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -39300,62 +40688,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5229, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5357, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5229, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5229, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5357, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5229, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5357, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "WCLPRICE", 0) < (0)) __PYX_ERR(4, 5229, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("WCLPRICE", 1, 3, 3, i); __PYX_ERR(4, 5229, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ROCR", 0) < (0)) __PYX_ERR(4, 5357, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ROCR", 0, 1, 2, i); __PYX_ERR(4, 5357, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5229, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5229, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5229, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5357, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5357, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5359, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("WCLPRICE", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 5229, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("ROCR", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 5357, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.WCLPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROCR", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 5231, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 5231, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 5231, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_334WCLPRICE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 5359, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_342ROCR(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -39374,7 +40762,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_334WCLPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_342ROCR(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; @@ -39386,49 +40774,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_334WCLPRICE(CYTHON_UNUSED PyObject *__ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + npy_int __pyx_t_2; 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(4, 5248, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5249, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("ROCR", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5250, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5378, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 5251, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5252, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5380, __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_WCLPRICE_Lookback()); + __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(4, 5255, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5383, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_ROCR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WCLPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5257, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5385, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -39441,13 +40815,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_334WCLPRICE(CYTHON_UNUSED PyObject *__ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.WCLPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -39455,37 +40827,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_334WCLPRICE(CYTHON_UNUSED PyObject *__ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_337WILLR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_345ROCR100(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_336WILLR, "WILLR(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nWILLR(high, low, close[, timeperiod=?])\n\nWilliams' %R (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_337WILLR = {"WILLR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_337WILLR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_336WILLR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_337WILLR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_344ROCR100, "ROCR100(ndarray real, int timeperiod=-0x80000000)\n\nROCR100(real[, timeperiod=?])\n\nRate of change ratio 100 scale: (real/prevPrice)*100 (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_345ROCR100 = {"ROCR100", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_345ROCR100, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_344ROCR100}; +static PyObject *__pyx_pw_5talib_7_ta_lib_345ROCR100(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + PyArrayObject *__pyx_v_real = 0; int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("WILLR (wrapper)", 0); + __Pyx_RefNannySetupContext("ROCR100 (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -39495,78 +40865,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5260, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5388, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 5260, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5260, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5260, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5388, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5260, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5388, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "WILLR", 0) < (0)) __PYX_ERR(4, 5260, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("WILLR", 0, 3, 4, i); __PYX_ERR(4, 5260, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ROCR100", 0) < (0)) __PYX_ERR(4, 5388, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ROCR100", 0, 1, 2, i); __PYX_ERR(4, 5388, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 5260, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5260, __pyx_L3_error) + case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5260, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5388, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5260, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5388, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5262, __pyx_L3_error) + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5390, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("WILLR", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 5260, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("ROCR100", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 5388, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.WILLR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROCR100", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 5262, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 5262, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 5262, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_336WILLR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 5390, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_344ROCR100(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -39585,7 +40939,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_336WILLR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_344ROCR100(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; @@ -39597,49 +40951,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_336WILLR(CYTHON_UNUSED PyObject *__pyx PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + npy_int __pyx_t_2; 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(4, 5281, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5282, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 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_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5283, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 5284, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5285, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5411, __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_WILLR_Lookback(__pyx_v_timeperiod)); + __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(4, 5288, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5414, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_ROCR100(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WILLR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5290, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR100, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5416, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -39652,13 +40992,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_336WILLR(CYTHON_UNUSED PyObject *__pyx /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.WILLR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROCR100", __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_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -39666,16 +41004,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_336WILLR(CYTHON_UNUSED PyObject *__pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_339WMA(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_347RSI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_338WMA, "WMA(ndarray real, int timeperiod=-0x80000000)\n\nWMA(real[, timeperiod=?])\n\nWeighted Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_339WMA = {"WMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_339WMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_338WMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_339WMA(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_346RSI, "RSI(ndarray real, int timeperiod=-0x80000000)\n\nRSI(real[, timeperiod=?])\n\nRelative Strength Index (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_347RSI = {"RSI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_347RSI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_346RSI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_347RSI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -39694,7 +41032,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("WMA (wrapper)", 0); + __Pyx_RefNannySetupContext("RSI (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -39706,60 +41044,60 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5293, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5419, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5293, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5419, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5293, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5419, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "WMA", 0) < (0)) __PYX_ERR(4, 5293, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "RSI", 0) < (0)) __PYX_ERR(4, 5419, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("WMA", 0, 1, 2, i); __PYX_ERR(4, 5293, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("RSI", 0, 1, 2, i); __PYX_ERR(4, 5419, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5293, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5419, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5293, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5419, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5295, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5421, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("WMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 5293, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("RSI", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 5419, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.WMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RSI", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 5295, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_338WMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 5421, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_346RSI(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -39778,7 +41116,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_338WMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_346RSI(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; @@ -39794,31 +41132,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_338WMA(CYTHON_UNUSED PyObject *__pyx_s int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("WMA", 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(4, 5314, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5440, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5316, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5442, __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_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(4, 5319, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5445, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_RSI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5321, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RSI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5447, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -39831,7 +41169,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_338WMA(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.WMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RSI", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_outreal); @@ -39843,34 +41181,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_338WMA(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_341str2bytes(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_349RVI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_340str2bytes, "str2bytes(s)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_341str2bytes = {"str2bytes", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_341str2bytes, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_340str2bytes}; -static PyObject *__pyx_pw_5talib_7_ta_lib_341str2bytes(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_348RVI, "RVI(ndarray real, int timeperiod=-0x80000000, int stddevperiod=-0x80000000)\n\nRVI(real[, timeperiod=?, stddevperiod=?])\n\nRelative Volatility Index (Volatility Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\n stddevperiod: 10\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_349RVI = {"RVI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_349RVI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_348RVI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_349RVI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_s = 0; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + int __pyx_v_stddevperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("str2bytes (wrapper)", 0); + __Pyx_RefNannySetupContext("RVI (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -39880,87 +41220,151 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_s,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_stddevperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 74, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5450, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5450, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5450, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 74, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5450, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "str2bytes", 0) < (0)) __PYX_ERR(2, 74, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "RVI", 0) < (0)) __PYX_ERR(4, 5450, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("str2bytes", 1, 1, 1, i); __PYX_ERR(2, 74, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("RVI", 0, 1, 3, i); __PYX_ERR(4, 5450, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 74, __pyx_L3_error) + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5450, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5450, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5450, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5452, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_stddevperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_stddevperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5452, __pyx_L3_error) + } else { + __pyx_v_stddevperiod = ((int)((int)-2147483648)); } - __pyx_v_s = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("str2bytes", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 74, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("RVI", 0, 1, 3, __pyx_nargs); __PYX_ERR(4, 5450, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.str2bytes", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RVI", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_340str2bytes(__pyx_self, __pyx_v_s); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 5452, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_348RVI(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_stddevperiod); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_340str2bytes(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_s) { +static PyObject *__pyx_pf_5talib_7_ta_lib_348RVI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_stddevperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - size_t __pyx_t_3; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("str2bytes", 0); + __Pyx_RefNannySetupContext("RVI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = NULL; - __pyx_t_3 = 1; - { - PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_s, __pyx_mstate_global->__pyx_n_u_ascii}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(&PyBytes_Type), __pyx_callargs+__pyx_t_3, (3-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 75, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_r = __pyx_t_1; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5472, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5474, __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_RVI_Lookback(__pyx_v_timeperiod, __pyx_v_stddevperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5477, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + + __pyx_v_retCode = TA_RVI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_stddevperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5479, __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_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.str2bytes", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RVI", __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; @@ -39968,34 +41372,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_340str2bytes(CYTHON_UNUSED PyObject *_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_343bytes2str(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_351RVOL(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_342bytes2str, "bytes2str(b)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_343bytes2str = {"bytes2str", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_343bytes2str, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_342bytes2str}; -static PyObject *__pyx_pw_5talib_7_ta_lib_343bytes2str(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_350RVOL, "RVOL(ndarray volume, int timeperiod=-0x80000000)\n\nRVOL(volume[, timeperiod=?])\n\nRelative Volume (Volume Indicators)\n\nInputs:\n prices: ['volume']\nParameters:\n timeperiod: 20\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_351RVOL = {"RVOL", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_351RVOL, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_350RVOL}; +static PyObject *__pyx_pw_5talib_7_ta_lib_351RVOL(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_b = 0; + PyArrayObject *__pyx_v_volume = 0; + int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("bytes2str (wrapper)", 0); + __Pyx_RefNannySetupContext("RVOL (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -40005,88 +41410,138 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_b,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 77, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5482, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5482, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 77, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5482, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "bytes2str", 0) < (0)) __PYX_ERR(2, 77, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "RVOL", 0) < (0)) __PYX_ERR(4, 5482, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("bytes2str", 1, 1, 1, i); __PYX_ERR(2, 77, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("RVOL", 0, 1, 2, i); __PYX_ERR(4, 5482, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 77, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5482, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5482, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_volume = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5484, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_b = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("bytes2str", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 77, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("RVOL", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 5482, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.bytes2str", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RVOL", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_342bytes2str(__pyx_self, __pyx_v_b); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(4, 5484, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_350RVOL(__pyx_self, __pyx_v_volume, __pyx_v_timeperiod); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_342bytes2str(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_b) { +static PyObject *__pyx_pf_5talib_7_ta_lib_350RVOL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - size_t __pyx_t_3; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("bytes2str", 0); + __Pyx_RefNannySetupContext("RVOL", 0); + __Pyx_INCREF((PyObject *)__pyx_v_volume); - __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = __pyx_v_b; - __Pyx_INCREF(__pyx_t_2); - __pyx_t_3 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ascii}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_decode, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 78, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_r = __pyx_t_1; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5503, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_volume)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5505, __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_RVOL_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(4, 5508, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + + __pyx_v_retCode = TA_RVOL(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVOL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5510, __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_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.bytes2str", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RVOL", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_volume); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -40094,34 +41549,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_342bytes2str(CYTHON_UNUSED PyObject *_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_345str2bytes(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_353SAR(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_344str2bytes, "str2bytes(s)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_345str2bytes = {"str2bytes", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_345str2bytes, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_344str2bytes}; -static PyObject *__pyx_pw_5talib_7_ta_lib_345str2bytes(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_352SAR, "SAR(ndarray high, ndarray low, double acceleration=0.02, double maximum=0.2)\n\nSAR(high, low[, acceleration=?, maximum=?])\n\nParabolic SAR (Overlap Studies)\n\nInputs:\n prices: ['high', 'low']\nParameters:\n acceleration: 0.02\n maximum: 0.2\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_353SAR = {"SAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_353SAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_352SAR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_353SAR(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_s = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + double __pyx_v_acceleration; + double __pyx_v_maximum; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("str2bytes (wrapper)", 0); + __Pyx_RefNannySetupContext("SAR (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -40131,67 +41589,168 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_s,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_acceleration,&__pyx_mstate_global->__pyx_n_u_maximum,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 82, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5513, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 5513, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5513, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5513, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 82, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5513, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "str2bytes", 0) < (0)) __PYX_ERR(2, 82, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("str2bytes", 1, 1, 1, i); __PYX_ERR(2, 82, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SAR", 0) < (0)) __PYX_ERR(4, 5513, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SAR", 0, 2, 4, i); __PYX_ERR(4, 5513, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 82, __pyx_L3_error) + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 5513, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5513, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5513, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5513, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_acceleration = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_acceleration == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 5515, __pyx_L3_error) + } else { + __pyx_v_acceleration = ((double)((double)0.02)); + } + if (values[3]) { + __pyx_v_maximum = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_maximum == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 5515, __pyx_L3_error) + } else { + __pyx_v_maximum = ((double)((double)0.2)); } - __pyx_v_s = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("str2bytes", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 82, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("SAR", 0, 2, 4, __pyx_nargs); __PYX_ERR(4, 5513, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.str2bytes", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SAR", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_344str2bytes(__pyx_self, __pyx_v_s); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 5515, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 5515, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_352SAR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_acceleration, __pyx_v_maximum); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_344str2bytes(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_s) { +static PyObject *__pyx_pf_5talib_7_ta_lib_352SAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, double __pyx_v_acceleration, double __pyx_v_maximum) { + 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 - __Pyx_RefNannySetupContext("str2bytes", 0); + 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(4, 5535, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5536, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 5537, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5538, __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(4, 5541, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_acceleration, __pyx_v_maximum, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5543, __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_s); - __pyx_r = __pyx_v_s; + __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; @@ -40199,34 +41758,43 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_344str2bytes(CYTHON_UNUSED PyObject *_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_347bytes2str(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_355SAREXT(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_346bytes2str, "bytes2str(b)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_347bytes2str = {"bytes2str", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_347bytes2str, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_346bytes2str}; -static PyObject *__pyx_pw_5talib_7_ta_lib_347bytes2str(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_354SAREXT, "SAREXT(ndarray high, ndarray low, double startvalue=-4e37, double offsetonreverse=-4e37, double accelerationinitlong=-4e37, double accelerationlong=-4e37, double accelerationmaxlong=-4e37, double accelerationinitshort=-4e37, double accelerationshort=-4e37, double accelerationmaxshort=-4e37)\n\nSAREXT(high, low[, startvalue=?, offsetonreverse=?, accelerationinitlong=?, accelerationlong=?, accelerationmaxlong=?, accelerationinitshort=?, accelerationshort=?, accelerationmaxshort=?])\n\nParabolic SAR - Extended (Overlap Studies)\n\nInputs:\n prices: ['high', 'low']\nParameters:\n startvalue: 0.0\n offsetonreverse: 0.0\n accelerationinitlong: 0.02\n accelerationlong: 0.02\n accelerationmaxlong: 0.2\n accelerationinitshort: 0.02\n accelerationshort: 0.02\n accelerationmaxshort: 0.2\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_355SAREXT = {"SAREXT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_355SAREXT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_354SAREXT}; +static PyObject *__pyx_pw_5talib_7_ta_lib_355SAREXT(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_b = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + double __pyx_v_startvalue; + double __pyx_v_offsetonreverse; + double __pyx_v_accelerationinitlong; + double __pyx_v_accelerationlong; + double __pyx_v_accelerationmaxlong; + double __pyx_v_accelerationinitshort; + double __pyx_v_accelerationshort; + double __pyx_v_accelerationmaxshort; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("bytes2str (wrapper)", 0); + __Pyx_RefNannySetupContext("SAREXT (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -40236,67 +41804,246 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_b,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_startvalue,&__pyx_mstate_global->__pyx_n_u_offsetonreverse,&__pyx_mstate_global->__pyx_n_u_accelerationinitlong,&__pyx_mstate_global->__pyx_n_u_accelerationlong,&__pyx_mstate_global->__pyx_n_u_accelerationmaxlong,&__pyx_mstate_global->__pyx_n_u_accelerationinitshort,&__pyx_mstate_global->__pyx_n_u_accelerationshort,&__pyx_mstate_global->__pyx_n_u_accelerationmaxshort,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 85, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5546, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 10: + values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(4, 5546, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 9: + values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(4, 5546, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 8: + values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(4, 5546, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(4, 5546, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 5546, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 5546, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 5546, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5546, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5546, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 85, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5546, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "bytes2str", 0) < (0)) __PYX_ERR(2, 85, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("bytes2str", 1, 1, 1, i); __PYX_ERR(2, 85, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SAREXT", 0) < (0)) __PYX_ERR(4, 5546, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SAREXT", 0, 2, 10, i); __PYX_ERR(4, 5546, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 85, __pyx_L3_error) + switch (__pyx_nargs) { + case 10: + values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(4, 5546, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 9: + values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(4, 5546, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 8: + values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(4, 5546, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(4, 5546, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 5546, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 5546, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 5546, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5546, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5546, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5546, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_startvalue = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_startvalue == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 5548, __pyx_L3_error) + } else { + __pyx_v_startvalue = ((double)((double)-4e37)); + } + if (values[3]) { + __pyx_v_offsetonreverse = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_offsetonreverse == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 5548, __pyx_L3_error) + } else { + __pyx_v_offsetonreverse = ((double)((double)-4e37)); + } + if (values[4]) { + __pyx_v_accelerationinitlong = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_accelerationinitlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 5548, __pyx_L3_error) + } else { + __pyx_v_accelerationinitlong = ((double)((double)-4e37)); + } + if (values[5]) { + __pyx_v_accelerationlong = __Pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_accelerationlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 5548, __pyx_L3_error) + } else { + __pyx_v_accelerationlong = ((double)((double)-4e37)); + } + if (values[6]) { + __pyx_v_accelerationmaxlong = __Pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_accelerationmaxlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 5548, __pyx_L3_error) + } else { + __pyx_v_accelerationmaxlong = ((double)((double)-4e37)); + } + if (values[7]) { + __pyx_v_accelerationinitshort = __Pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_accelerationinitshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 5548, __pyx_L3_error) + } else { + __pyx_v_accelerationinitshort = ((double)((double)-4e37)); + } + if (values[8]) { + __pyx_v_accelerationshort = __Pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_accelerationshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 5548, __pyx_L3_error) + } else { + __pyx_v_accelerationshort = ((double)((double)-4e37)); + } + if (values[9]) { + __pyx_v_accelerationmaxshort = __Pyx_PyFloat_AsDouble(values[9]); if (unlikely((__pyx_v_accelerationmaxshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 5548, __pyx_L3_error) + } else { + __pyx_v_accelerationmaxshort = ((double)((double)-4e37)); } - __pyx_v_b = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("bytes2str", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 85, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("SAREXT", 0, 2, 10, __pyx_nargs); __PYX_ERR(4, 5546, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.bytes2str", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SAREXT", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_346bytes2str(__pyx_self, __pyx_v_b); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 5548, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 5548, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_354SAREXT(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_startvalue, __pyx_v_offsetonreverse, __pyx_v_accelerationinitlong, __pyx_v_accelerationlong, __pyx_v_accelerationmaxlong, __pyx_v_accelerationinitshort, __pyx_v_accelerationshort, __pyx_v_accelerationmaxshort); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_346bytes2str(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_b) { +static PyObject *__pyx_pf_5talib_7_ta_lib_354SAREXT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, double __pyx_v_startvalue, double __pyx_v_offsetonreverse, double __pyx_v_accelerationinitlong, double __pyx_v_accelerationlong, double __pyx_v_accelerationmaxlong, double __pyx_v_accelerationinitshort, double __pyx_v_accelerationshort, double __pyx_v_accelerationmaxshort) { + 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 - __Pyx_RefNannySetupContext("bytes2str", 0); + 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(4, 5574, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5575, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 5576, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5577, __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(4, 5580, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_startvalue, __pyx_v_offsetonreverse, __pyx_v_accelerationinitlong, __pyx_v_accelerationlong, __pyx_v_accelerationmaxlong, __pyx_v_accelerationinitshort, __pyx_v_accelerationshort, __pyx_v_accelerationmaxshort, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAREXT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5582, __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_b); - __pyx_r = __pyx_v_b; + __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; @@ -40304,38 +42051,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_346bytes2str(CYTHON_UNUSED PyObject *_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_1__init__(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_357SIN(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function___init__, "Function.__init__(self, function_name, func_object, *args, **kwargs)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function___init__}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_1__init__(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_356SIN, "SIN(ndarray real)\n\nSIN(real)\n\nVector Trigonometric Sin (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_357SIN = {"SIN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_357SIN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_356SIN}; +static PyObject *__pyx_pw_5talib_7_ta_lib_357SIN(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; - PyObject *__pyx_v_function_name = 0; - PyObject *__pyx_v_func_object = 0; - PyObject *__pyx_v_args = 0; - PyObject *__pyx_v_kwargs = 0; + PyArrayObject *__pyx_v_real = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + __Pyx_RefNannySetupContext("SIN (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -40344,196 +42087,123 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - __pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return NULL; - __Pyx_GOTREF(__pyx_v_kwargs); - __pyx_v_args = __Pyx_ArgsSlice_FASTCALL(__pyx_args, 3, __pyx_nargs); - if (unlikely(!__pyx_v_args)) { - __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0; - __Pyx_RefNannyFinishContext(); - return NULL; - } - __Pyx_GOTREF(__pyx_v_args); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_function_name,&__pyx_mstate_global->__pyx_n_u_func_object,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 117, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5585, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - default: - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(2, 117, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 117, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 117, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5585, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; + default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - const Py_ssize_t used_pos_args = (kwd_pos_args < 3) ? kwd_pos_args : 3; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, __pyx_kwds_len, "__init__", 1) < (0)) __PYX_ERR(2, 117, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 3, i); __PYX_ERR(2, 117, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SIN", 0) < (0)) __PYX_ERR(4, 5585, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SIN", 1, 1, 1, i); __PYX_ERR(4, 5585, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs < 3)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 117, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 117, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(2, 117, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5585, __pyx_L3_error) } - __pyx_v_self = values[0]; - __pyx_v_function_name = values[1]; - __pyx_v_func_object = values[2]; + __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 3, __pyx_nargs); __PYX_ERR(2, 117, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("SIN", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 5585, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_DECREF(__pyx_v_args); __pyx_v_args = 0; - __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0; - __Pyx_AddTraceback("talib._ta_lib.Function.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SIN", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function___init__(__pyx_self, __pyx_v_self, __pyx_v_function_name, __pyx_v_func_object, __pyx_v_args, __pyx_v_kwargs); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 5587, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_356SIN(__pyx_self, __pyx_v_real); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_DECREF(__pyx_v_args); - __Pyx_DECREF(__pyx_v_kwargs); + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_function_name, PyObject *__pyx_v_func_object, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs) { +static PyObject *__pyx_pf_5talib_7_ta_lib_356SIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - size_t __pyx_t_3; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__init__", 0); - - __pyx_t_2 = __pyx_v_function_name; - __Pyx_INCREF(__pyx_t_2); - __pyx_t_3 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_upper, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 119, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name, __pyx_t_1) < (0)) __PYX_ERR(2, 119, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("SIN", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 120, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5604, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__namestr, __pyx_t_1) < (0)) __PYX_ERR(2, 120, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_2 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_str2bytes); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 121, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 121, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_3 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_2); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_2); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_3 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_5}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 121, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name, __pyx_t_1) < (0)) __PYX_ERR(2, 121, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_4 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_threading); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 124, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_local); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 124, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_3 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_2))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); - assert(__pyx_t_4); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_2, __pyx__function); - __pyx_t_3 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_2, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 124, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__localdata, __pyx_t_1) < (0)) __PYX_ERR(2, 124, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5606, __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 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_set_function_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 127, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5609, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SIN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5611, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyDict_Copy(__pyx_v_kwargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 127, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_v_args, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 127, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_func_object, __pyx_v_func_object) < (0)) __PYX_ERR(2, 128, __pyx_L1_error) + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + goto __pyx_L0; /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.Function.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.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; @@ -40541,23 +42211,23 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function___init__(CYTHON_UNUSED PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_3__local(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_359SINH(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_2__local, "Function.__local(self)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_3__local = {"__local", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_3__local, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_2__local}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_3__local(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_358SINH, "SINH(ndarray real)\n\nSINH(real)\n\nVector Trigonometric Sinh (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_359SINH = {"SINH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_359SINH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_358SINH}; +static PyObject *__pyx_pw_5talib_7_ta_lib_359SINH(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; + PyArrayObject *__pyx_v_real = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -40568,7 +42238,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__local (wrapper)", 0); + __Pyx_RefNannySetupContext("SINH (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -40578,561 +42248,299 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 130, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5614, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 130, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5614, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__local", 0) < (0)) __PYX_ERR(2, 130, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SINH", 0) < (0)) __PYX_ERR(4, 5614, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__local", 1, 1, 1, i); __PYX_ERR(2, 130, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SINH", 1, 1, 1, i); __PYX_ERR(4, 5614, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 130, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5614, __pyx_L3_error) } - __pyx_v_self = values[0]; + __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__local", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 130, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("SINH", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 5614, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.Function.__local", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SINH", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_2__local(__pyx_self, __pyx_v_self); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 5616, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_358SINH(__pyx_self, __pyx_v_real); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_2__local(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { - PyObject *__pyx_v_local = NULL; - PyObject *__pyx_v_i = NULL; - PyObject *__pyx_v_info = NULL; - PyObject *__pyx_v_input_name = NULL; - PyObject *__pyx_v_param_name = NULL; - PyObject *__pyx_v_output_name = NULL; +static PyObject *__pyx_pf_5talib_7_ta_lib_358SINH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; - int __pyx_t_3; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - size_t __pyx_t_6; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *(*__pyx_t_9)(PyObject *); + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__local", 0); + __Pyx_RefNannySetupContext("SINH", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__localdata); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 132, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5633, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_local = __pyx_t_1; + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __Pyx_HasAttr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(2, 133, __pyx_L1_error) - __pyx_t_3 = (!__pyx_t_2); - if (__pyx_t_3) { - - if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info, Py_None) < (0)) __PYX_ERR(2, 134, __pyx_L1_error) - - __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 135, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays, __pyx_t_1) < (0)) __PYX_ERR(2, 135, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_4 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_OrderedDict); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 138, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_5))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5); - assert(__pyx_t_4); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_5, __pyx__function); - __pyx_t_6 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 138, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names, __pyx_t_1) < (0)) __PYX_ERR(2, 138, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5635, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; - __pyx_t_5 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_OrderedDict); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 139, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_5); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_6 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 139, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs, __pyx_t_1) < (0)) __PYX_ERR(2, 139, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_t_4 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_OrderedDict); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 140, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_5))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5); - assert(__pyx_t_4); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_5, __pyx__function); - __pyx_t_6 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 140, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs, __pyx_t_1) < (0)) __PYX_ERR(2, 140, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_lookback = (__pyx_v_begidx + TA_SINH_Lookback()); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs_valid, Py_False) < (0)) __PYX_ERR(2, 141, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5638, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_5 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ta_getFuncInfo); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 144, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 144, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_6 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_5); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_6 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 144, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info, __pyx_t_1) < (0)) __PYX_ERR(2, 144, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_retCode = TA_SINH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_4 = NULL; - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 147, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_5 = __pyx_t_8; - __Pyx_INCREF(__pyx_t_5); - __pyx_t_6 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_mstate_global->__pyx_n_u_num_inputs}; - __pyx_t_7 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_pop, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 147, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - } - __pyx_t_6 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_7}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(&PyRange_Type), __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 147, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 147, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_9 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 147, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - for (;;) { - { - __pyx_t_1 = __pyx_t_9(__pyx_t_7); - if (unlikely(!__pyx_t_1)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 147, __pyx_L1_error) - PyErr_Clear(); - } - break; - } - } - __Pyx_GOTREF(__pyx_t_1); - __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SINH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5640, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_4 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_ta_getInputParameterInfo); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 148, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 148, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_8))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_8); - assert(__pyx_t_4); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_8); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_8, __pyx__function); - __pyx_t_6 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_5, __pyx_v_i}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_6, (3-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 148, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __Pyx_XDECREF_SET(__pyx_v_info, __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; - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_info, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 149, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_XDECREF_SET(__pyx_v_input_name, __pyx_t_1); - __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_info, __pyx_mstate_global->__pyx_n_u_price_series); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 150, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = (__pyx_t_1 == Py_None); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (__pyx_t_3) { + /* 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; +} - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_INPUT_PRICE_SERIES_DEFAULTS); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 151, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_input_name); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 151, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely((PyObject_SetItem(__pyx_v_info, __pyx_mstate_global->__pyx_n_u_price_series, __pyx_t_8) < 0))) __PYX_ERR(2, 151, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_361SMA(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_360SMA, "SMA(ndarray real, int timeperiod=-0x80000000)\n\nSMA(real[, timeperiod=?])\n\nSimple Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_361SMA = {"SMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_361SMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_360SMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_361SMA(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("SMA (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5643, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5643, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5643, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SMA", 0) < (0)) __PYX_ERR(4, 5643, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SMA", 0, 1, 2, i); __PYX_ERR(4, 5643, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5643, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5643, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; } - - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 152, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - if (unlikely((PyObject_SetItem(__pyx_t_8, __pyx_v_input_name, __pyx_v_info) < 0))) __PYX_ERR(2, 152, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - } - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 153, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 153, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - if (unlikely((PyObject_SetItem(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_input_names, __pyx_t_7) < 0))) __PYX_ERR(2, 153, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - - __pyx_t_8 = NULL; - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 156, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __pyx_t_4; - __Pyx_INCREF(__pyx_t_5); - __pyx_t_6 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_mstate_global->__pyx_n_u_num_opt_inputs}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_pop, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 156, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5645, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_t_6 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_1}; - __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)(&PyRange_Type), __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 156, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - } - __pyx_t_1 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 156, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_9 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 156, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - for (;;) { - { - __pyx_t_7 = __pyx_t_9(__pyx_t_1); - if (unlikely(!__pyx_t_7)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 156, __pyx_L1_error) - PyErr_Clear(); - } - break; - } - } - __Pyx_GOTREF(__pyx_t_7); - __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_7); - __pyx_t_7 = 0; - - __pyx_t_8 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ta_getOptInputParameterInfo); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 157, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 157, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_8); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_8); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_6 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_8, __pyx_t_5, __pyx_v_i}; - __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (3-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 157, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - } - __Pyx_XDECREF_SET(__pyx_v_info, __pyx_t_7); - __pyx_t_7 = 0; - - __pyx_t_7 = __Pyx_PyObject_Dict_GetItem(__pyx_v_info, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 158, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_XDECREF_SET(__pyx_v_param_name, __pyx_t_7); - __pyx_t_7 = 0; - - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 159, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - if (unlikely((PyObject_SetItem(__pyx_t_7, __pyx_v_param_name, __pyx_v_info) < 0))) __PYX_ERR(2, 159, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("SMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 5643, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.SMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 5645, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_360SMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_parameters); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 160, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 160, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - if (unlikely((PyObject_SetItem(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_parameters, __pyx_t_1) < 0))) __PYX_ERR(2, 160, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} - __pyx_t_7 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_OrderedDict); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 163, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_7); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_7); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_6 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_7, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 163, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 163, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (unlikely((PyObject_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_output_flags, __pyx_t_1) < 0))) __PYX_ERR(2, 163, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_360SMA(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_4 = NULL; - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 164, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_5 = __pyx_t_8; - __Pyx_INCREF(__pyx_t_5); - __pyx_t_6 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_mstate_global->__pyx_n_u_num_outputs}; - __pyx_t_7 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_pop, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 164, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - } - __pyx_t_6 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_7}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(&PyRange_Type), __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 164, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 164, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_9 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 164, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - for (;;) { - { - __pyx_t_1 = __pyx_t_9(__pyx_t_7); - if (unlikely(!__pyx_t_1)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 164, __pyx_L1_error) - PyErr_Clear(); - } - break; - } - } - __Pyx_GOTREF(__pyx_t_1); - __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5664, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_4 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_ta_getOutputParameterInfo); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 165, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 165, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_8))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_8); - assert(__pyx_t_4); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_8); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_8, __pyx__function); - __pyx_t_6 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_5, __pyx_v_i}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_6, (3-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 165, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __Pyx_XDECREF_SET(__pyx_v_info, __pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_info, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 166, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_XDECREF_SET(__pyx_v_output_name, __pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5666, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_info, __pyx_mstate_global->__pyx_n_u_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 167, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 167, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_output_flags); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 167, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely((PyObject_SetItem(__pyx_t_5, __pyx_v_output_name, __pyx_t_1) < 0))) __PYX_ERR(2, 167, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 168, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (unlikely((PyObject_SetItem(__pyx_t_1, __pyx_v_output_name, Py_None) < 0))) __PYX_ERR(2, 168, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_lookback = (__pyx_v_begidx + TA_SMA_Lookback(__pyx_v_timeperiod)); - } - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5669, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_output_names); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 169, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 169, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (unlikely((PyObject_SetItem(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_output_names, __pyx_t_7) < 0))) __PYX_ERR(2, 169, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_v_retCode = TA_SMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - } + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5671, __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_local); - __pyx_r = __pyx_v_local; + __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_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_AddTraceback("talib._ta_lib.Function.__local", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SMA", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_local); - __Pyx_XDECREF(__pyx_v_i); - __Pyx_XDECREF(__pyx_v_info); - __Pyx_XDECREF(__pyx_v_input_name); - __Pyx_XDECREF(__pyx_v_param_name); - __Pyx_XDECREF(__pyx_v_output_name); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -41140,34 +42548,40 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_2__local(CYTHON_UNUSED PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_5info(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_363SMI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_4info, "Function.info(self)\n\nReturns a copy of the function's info dict."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_5info = {"info", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_5info, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_4info}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_5info(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_362SMI, "SMI(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int signalperiod=-0x80000000)\n\nSMI(high, low, close[, timeperiod=?, fastperiod=?, slowperiod=?, signalperiod=?])\n\nStochastic Momentum Index (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n timeperiod: 13\n fastperiod: 2\n slowperiod: 25\n signalperiod: 9\nOutputs:\n smi\n smisignal"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_363SMI = {"SMI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_363SMI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_362SMI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_363SMI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + int __pyx_v_signalperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[7] = {0,0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("info (wrapper)", 0); + __Pyx_RefNannySetupContext("SMI (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -41177,84 +42591,208 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 172, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5674, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(4, 5674, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 5674, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 5674, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 5674, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5674, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5674, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 172, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5674, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "info", 0) < (0)) __PYX_ERR(2, 172, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("info", 1, 1, 1, i); __PYX_ERR(2, 172, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SMI", 0) < (0)) __PYX_ERR(4, 5674, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SMI", 0, 3, 7, i); __PYX_ERR(4, 5674, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 172, __pyx_L3_error) + switch (__pyx_nargs) { + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(4, 5674, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 5674, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 5674, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 5674, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5674, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5674, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5674, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5676, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + if (values[4]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5676, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)((int)-2147483648)); + } + if (values[5]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5676, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)((int)-2147483648)); + } + if (values[6]) { + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5676, __pyx_L3_error) + } else { + __pyx_v_signalperiod = ((int)((int)-2147483648)); } - __pyx_v_self = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("info", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 172, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("SMI", 0, 3, 7, __pyx_nargs); __PYX_ERR(4, 5674, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.Function.info", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SMI", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_4info(__pyx_self, __pyx_v_self); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 5676, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 5676, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 5676, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_362SMI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_4info(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_362SMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod) { + 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_outsmi = 0; + PyArrayObject *__pyx_v_outsmisignal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - size_t __pyx_t_5; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("info", 0); + __Pyx_RefNannySetupContext("SMI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5700, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5701, __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(4, 5702, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 5703, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5704, __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_SMI_Lookback(__pyx_v_timeperiod, __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(4, 5707, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outsmi = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5708, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outsmisignal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_SMI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outsmi)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outsmisignal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5710, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_r); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 177, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 177, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __pyx_t_4; - __Pyx_INCREF(__pyx_t_2); - __pyx_t_5 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_copy, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 177, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5711, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_outsmi); + __Pyx_GIVEREF((PyObject *)__pyx_v_outsmi); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outsmi)) != (0)) __PYX_ERR(4, 5711, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outsmisignal); + __Pyx_GIVEREF((PyObject *)__pyx_v_outsmisignal); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outsmisignal)) != (0)) __PYX_ERR(4, 5711, __pyx_L1_error); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; @@ -41263,12 +42801,14 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_4info(CYTHON_UNUSED PyObject /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("talib._ta_lib.Function.info", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SMI", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_outsmi); + __Pyx_XDECREF((PyObject *)__pyx_v_outsmisignal); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -41276,23 +42816,23 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_4info(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_7function_flags(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_365SQRT(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_6function_flags, "Function.function_flags(self)\n\nReturns any function flags defined for this indicator function."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_7function_flags = {"function_flags", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_7function_flags, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_6function_flags}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_7function_flags(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_364SQRT, "SQRT(ndarray real)\n\nSQRT(real)\n\nVector Square Root (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_365SQRT = {"SQRT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_365SQRT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_364SQRT}; +static PyObject *__pyx_pw_5talib_7_ta_lib_365SQRT(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; + PyArrayObject *__pyx_v_real = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -41303,7 +42843,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("function_flags (wrapper)", 0); + __Pyx_RefNannySetupContext("SQRT (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -41313,85 +42853,122 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 179, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5713, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 179, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5713, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "function_flags", 0) < (0)) __PYX_ERR(2, 179, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SQRT", 0) < (0)) __PYX_ERR(4, 5713, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("function_flags", 1, 1, 1, i); __PYX_ERR(2, 179, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SQRT", 1, 1, 1, i); __PYX_ERR(4, 5713, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 179, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5713, __pyx_L3_error) } - __pyx_v_self = values[0]; + __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("function_flags", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 179, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("SQRT", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 5713, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.Function.function_flags", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SQRT", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_6function_flags(__pyx_self, __pyx_v_self); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 5715, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_364SQRT(__pyx_self, __pyx_v_real); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_6function_flags(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_364SQRT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("function_flags", 0); + __Pyx_RefNannySetupContext("SQRT", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 184, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5732, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 184, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_function_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 184, __pyx_L1_error) + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5734, __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(4, 5737, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_r = __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SQRT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5739, __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_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.Function.function_flags", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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; @@ -41399,34 +42976,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_6function_flags(CYTHON_UNUSE /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_9output_flags(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_367STDDEV(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_8output_flags, "Function.output_flags(self)\n\nReturns the flags for each output for this indicator function."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_9output_flags = {"output_flags", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_9output_flags, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_8output_flags}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_9output_flags(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_366STDDEV, "STDDEV(ndarray real, int timeperiod=-0x80000000, double nbdev=-4e37)\n\nSTDDEV(real[, timeperiod=?, nbdev=?])\n\nStandard Deviation (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 5\n nbdev: 1.0\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_367STDDEV = {"STDDEV", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_367STDDEV, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_366STDDEV}; +static PyObject *__pyx_pw_5talib_7_ta_lib_367STDDEV(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + double __pyx_v_nbdev; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("output_flags (wrapper)", 0); + __Pyx_RefNannySetupContext("STDDEV (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -41436,101 +43015,151 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 186, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5742, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5742, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5742, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 186, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5742, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "output_flags", 0) < (0)) __PYX_ERR(2, 186, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "STDDEV", 0) < (0)) __PYX_ERR(4, 5742, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("output_flags", 1, 1, 1, i); __PYX_ERR(2, 186, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("STDDEV", 0, 1, 3, i); __PYX_ERR(4, 5742, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 186, __pyx_L3_error) + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5742, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5742, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5742, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } - __pyx_v_self = values[0]; - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("output_flags", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 186, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5744, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 5744, __pyx_L3_error) + } else { + __pyx_v_nbdev = ((double)((double)-4e37)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("STDDEV", 0, 1, 3, __pyx_nargs); __PYX_ERR(4, 5742, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.Function.output_flags", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STDDEV", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_8output_flags(__pyx_self, __pyx_v_self); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 5744, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_366STDDEV(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdev); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_8output_flags(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_366STDDEV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - size_t __pyx_t_5; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("output_flags", 0); + __Pyx_RefNannySetupContext("STDDEV", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __Pyx_XDECREF(__pyx_r); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 191, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 191, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_output_flags); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 191, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __pyx_t_3; - __Pyx_INCREF(__pyx_t_2); - __pyx_t_5 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_copy, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 191, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_r = __pyx_t_1; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5764, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5766, __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(4, 5769, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_nbdev, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STDDEV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5771, __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_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("talib._ta_lib.Function.output_flags", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.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; @@ -41538,34 +43167,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_8output_flags(CYTHON_UNUSED /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_11get_input_names(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_369STOCH(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_10get_input_names, "Function.get_input_names(self)\n\nReturns the dict of input price series names that specifies which\nof the ndarrays in input_arrays will be used to calculate the function."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_11get_input_names = {"get_input_names", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_11get_input_names, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_10get_input_names}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_11get_input_names(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_368STOCH, "STOCH(ndarray high, ndarray low, ndarray close, int fastk_period=-0x80000000, int slowk_period=-0x80000000, int slowk_matype=0, int slowd_period=-0x80000000, int slowd_matype=0)\n\nSTOCH(high, low, close[, fastk_period=?, slowk_period=?, slowk_matype=?, slowd_period=?, slowd_matype=?])\n\nStochastic (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n fastk_period: 5\n slowk_period: 3\n slowk_matype: 0 (Simple Moving Average)\n slowd_period: 3\n slowd_matype: 0 (Simple Moving Average)\nOutputs:\n slowk\n slowd"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_369STOCH = {"STOCH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_369STOCH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_368STOCH}; +static PyObject *__pyx_pw_5talib_7_ta_lib_369STOCH(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_fastk_period; + int __pyx_v_slowk_period; + int __pyx_v_slowk_matype; + int __pyx_v_slowd_period; + int __pyx_v_slowd_matype; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[8] = {0,0,0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("get_input_names (wrapper)", 0); + __Pyx_RefNannySetupContext("STOCH (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -41575,188 +43211,237 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_slowk_period,&__pyx_mstate_global->__pyx_n_u_slowk_matype,&__pyx_mstate_global->__pyx_n_u_slowd_period,&__pyx_mstate_global->__pyx_n_u_slowd_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 193, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5774, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 8: + values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(4, 5774, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(4, 5774, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 5774, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 5774, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 5774, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5774, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5774, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 193, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5774, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "get_input_names", 0) < (0)) __PYX_ERR(2, 193, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("get_input_names", 1, 1, 1, i); __PYX_ERR(2, 193, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "STOCH", 0) < (0)) __PYX_ERR(4, 5774, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("STOCH", 0, 3, 8, i); __PYX_ERR(4, 5774, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 193, __pyx_L3_error) + switch (__pyx_nargs) { + case 8: + values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(4, 5774, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(4, 5774, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 5774, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 5774, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 5774, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5774, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5774, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5774, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5776, __pyx_L3_error) + } else { + __pyx_v_fastk_period = ((int)((int)-2147483648)); + } + if (values[4]) { + __pyx_v_slowk_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5776, __pyx_L3_error) + } else { + __pyx_v_slowk_period = ((int)((int)-2147483648)); + } + if (values[5]) { + __pyx_v_slowk_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowk_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5776, __pyx_L3_error) + } else { + __pyx_v_slowk_matype = ((int)((int)0)); + } + if (values[6]) { + __pyx_v_slowd_period = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_slowd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5776, __pyx_L3_error) + } else { + __pyx_v_slowd_period = ((int)((int)-2147483648)); + } + if (values[7]) { + __pyx_v_slowd_matype = __Pyx_PyLong_As_int(values[7]); if (unlikely((__pyx_v_slowd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5776, __pyx_L3_error) + } else { + __pyx_v_slowd_matype = ((int)((int)0)); } - __pyx_v_self = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("get_input_names", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 193, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("STOCH", 0, 3, 8, __pyx_nargs); __PYX_ERR(4, 5774, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.Function.get_input_names", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STOCH", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_10get_input_names(__pyx_self, __pyx_v_self); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 5776, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 5776, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 5776, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_368STOCH(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_10get_input_names(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { - PyObject *__pyx_v_local = NULL; - PyObject *__pyx_v_ret = NULL; - PyObject *__pyx_v_input_name = NULL; +static PyObject *__pyx_pf_5talib_7_ta_lib_368STOCH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_slowk_period, int __pyx_v_slowk_matype, int __pyx_v_slowd_period, int __pyx_v_slowd_matype) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outslowk = 0; + PyArrayObject *__pyx_v_outslowd = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - size_t __pyx_t_4; - Py_ssize_t __pyx_t_5; - PyObject *(*__pyx_t_6)(PyObject *); + 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("get_input_names", 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 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 198, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5801, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_local = __pyx_t_1; + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_OrderedDict); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 199, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); - assert(__pyx_t_2); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_2); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_3, __pyx__function); - __pyx_t_4 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 199, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_v_ret = __pyx_t_1; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5802, __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 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 200, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5803, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { - __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); - __pyx_t_5 = 0; - __pyx_t_6 = NULL; - } else { - __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 200, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_6 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 200, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - for (;;) { - if (likely(!__pyx_t_6)) { - if (likely(PyList_CheckExact(__pyx_t_3))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 200, __pyx_L1_error) - #endif - if (__pyx_t_5 >= __pyx_temp) break; - } - __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_3, __pyx_t_5, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_5; - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 200, __pyx_L1_error) - #endif - if (__pyx_t_5 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5)); - #else - __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_5); - #endif - ++__pyx_t_5; - } - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 200, __pyx_L1_error) - } else { - __pyx_t_1 = __pyx_t_6(__pyx_t_3); - if (unlikely(!__pyx_t_1)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 200, __pyx_L1_error) - PyErr_Clear(); - } - break; - } - } - __Pyx_GOTREF(__pyx_t_1); - __Pyx_XDECREF_SET(__pyx_v_input_name, __pyx_t_1); - __pyx_t_1 = 0; + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 201, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_input_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 201, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_price_series); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 201, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely((PyObject_SetItem(__pyx_v_ret, __pyx_v_input_name, __pyx_t_1) < 0))) __PYX_ERR(2, 201, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 5804, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5805, __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(4, 5808, __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(4, 5809, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outslowk)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outslowd)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5811, __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_ret); - __pyx_r = __pyx_v_ret; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5812, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_outslowk); + __Pyx_GIVEREF((PyObject *)__pyx_v_outslowk); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outslowk)) != (0)) __PYX_ERR(4, 5812, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outslowd); + __Pyx_GIVEREF((PyObject *)__pyx_v_outslowd); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outslowd)) != (0)) __PYX_ERR(4, 5812, __pyx_L1_error); + __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.get_input_names", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STOCH", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_local); - __Pyx_XDECREF(__pyx_v_ret); - __Pyx_XDECREF(__pyx_v_input_name); + __Pyx_XDECREF((PyObject *)__pyx_v_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; @@ -41764,35 +43449,39 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_10get_input_names(CYTHON_UNU /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_13set_input_names(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_371STOCHF(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_12set_input_names, "Function.set_input_names(self, input_names)\n\nSets the input price series names to use."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_13set_input_names = {"set_input_names", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_13set_input_names, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_12set_input_names}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_13set_input_names(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_370STOCHF, "STOCHF(ndarray high, ndarray low, ndarray close, int fastk_period=-0x80000000, int fastd_period=-0x80000000, int fastd_matype=0)\n\nSTOCHF(high, low, close[, fastk_period=?, fastd_period=?, fastd_matype=?])\n\nStochastic Fast (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n fastk_period: 5\n fastd_period: 3\n fastd_matype: 0 (Simple Moving Average)\nOutputs:\n fastk\n fastd"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_371STOCHF = {"STOCHF", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_371STOCHF, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_370STOCHF}; +static PyObject *__pyx_pw_5talib_7_ta_lib_371STOCHF(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; - PyObject *__pyx_v_input_names = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_fastk_period; + int __pyx_v_fastd_period; + int __pyx_v_fastd_matype; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[6] = {0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("set_input_names (wrapper)", 0); + __Pyx_RefNannySetupContext("STOCHF (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -41802,238 +43491,211 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_input_names,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_fastd_period,&__pyx_mstate_global->__pyx_n_u_fastd_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 204, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5814, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 5814, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 5814, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 5814, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5814, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 204, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5814, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 204, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5814, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "set_input_names", 0) < (0)) __PYX_ERR(2, 204, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("set_input_names", 1, 2, 2, i); __PYX_ERR(2, 204, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "STOCHF", 0) < (0)) __PYX_ERR(4, 5814, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("STOCHF", 0, 3, 6, i); __PYX_ERR(4, 5814, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 204, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 204, __pyx_L3_error) + switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 5814, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 5814, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 5814, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5814, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5814, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5814, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5816, __pyx_L3_error) + } else { + __pyx_v_fastk_period = ((int)((int)-2147483648)); + } + if (values[4]) { + __pyx_v_fastd_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5816, __pyx_L3_error) + } else { + __pyx_v_fastd_period = ((int)((int)-2147483648)); + } + if (values[5]) { + __pyx_v_fastd_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_fastd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5816, __pyx_L3_error) + } else { + __pyx_v_fastd_matype = ((int)((int)0)); } - __pyx_v_self = values[0]; - __pyx_v_input_names = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("set_input_names", 1, 2, 2, __pyx_nargs); __PYX_ERR(2, 204, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("STOCHF", 0, 3, 6, __pyx_nargs); __PYX_ERR(4, 5814, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.Function.set_input_names", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STOCHF", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_12set_input_names(__pyx_self, __pyx_v_self, __pyx_v_input_names); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 5816, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 5816, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 5816, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_370STOCHF(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_12set_input_names(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_names) { - PyObject *__pyx_v_local = NULL; - PyObject *__pyx_v_input_name = NULL; - PyObject *__pyx_v_price_series = NULL; +static PyObject *__pyx_pf_5talib_7_ta_lib_370STOCHF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype) { + 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; - PyObject *__pyx_t_2 = NULL; - size_t __pyx_t_3; - Py_ssize_t __pyx_t_4; - PyObject *(*__pyx_t_5)(PyObject *); - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *(*__pyx_t_9)(PyObject *); + 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("set_input_names", 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 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 208, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5839, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_local = __pyx_t_1; + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_v_input_names; - __Pyx_INCREF(__pyx_t_2); - __pyx_t_3 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_items, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 209, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { - __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); - __pyx_t_4 = 0; - __pyx_t_5 = NULL; - } else { - __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 209, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 209, __pyx_L1_error) - } + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5840, __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(4, 5841, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 5842, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5843, __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(4, 5846, __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(4, 5847, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outfastk)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outfastd)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHF, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5849, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - for (;;) { - if (likely(!__pyx_t_5)) { - if (likely(PyList_CheckExact(__pyx_t_2))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 209, __pyx_L1_error) - #endif - if (__pyx_t_4 >= __pyx_temp) break; - } - __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_2, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_4; - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 209, __pyx_L1_error) - #endif - if (__pyx_t_4 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4)); - #else - __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_4); - #endif - ++__pyx_t_4; - } - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 209, __pyx_L1_error) - } else { - __pyx_t_1 = __pyx_t_5(__pyx_t_2); - if (unlikely(!__pyx_t_1)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 209, __pyx_L1_error) - PyErr_Clear(); - } - break; - } - } - __Pyx_GOTREF(__pyx_t_1); - if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { - PyObject* sequence = __pyx_t_1; - Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); - if (unlikely(size != 2)) { - if (size > 2) __Pyx_RaiseTooManyValuesError(2); - else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(2, 209, __pyx_L1_error) - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - if (likely(PyTuple_CheckExact(sequence))) { - __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); - __Pyx_INCREF(__pyx_t_6); - __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1); - __Pyx_INCREF(__pyx_t_7); - } else { - __pyx_t_6 = __Pyx_PyList_GetItemRefFast(sequence, 0, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 209, __pyx_L1_error) - __Pyx_XGOTREF(__pyx_t_6); - __pyx_t_7 = __Pyx_PyList_GetItemRefFast(sequence, 1, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 209, __pyx_L1_error) - __Pyx_XGOTREF(__pyx_t_7); - } - #else - __pyx_t_6 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 209, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 209, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - #endif - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - } else { - Py_ssize_t index = -1; - __pyx_t_8 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 209, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_9 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_8); - index = 0; __pyx_t_6 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_6)) goto __pyx_L5_unpacking_failed; - __Pyx_GOTREF(__pyx_t_6); - index = 1; __pyx_t_7 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_7)) goto __pyx_L5_unpacking_failed; - __Pyx_GOTREF(__pyx_t_7); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 2) < (0)) __PYX_ERR(2, 209, __pyx_L1_error) - __pyx_t_9 = NULL; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - goto __pyx_L6_unpacking_done; - __pyx_L5_unpacking_failed:; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_9 = NULL; - if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(2, 209, __pyx_L1_error) - __pyx_L6_unpacking_done:; - } - __Pyx_XDECREF_SET(__pyx_v_input_name, __pyx_t_6); - __pyx_t_6 = 0; - __Pyx_XDECREF_SET(__pyx_v_price_series, __pyx_t_7); - __pyx_t_7 = 0; - - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 210, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_input_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 210, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely((PyObject_SetItem(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_price_series, __pyx_v_price_series) < 0))) __PYX_ERR(2, 210, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 211, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 211, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely((PyObject_SetItem(__pyx_t_1, __pyx_v_input_name, __pyx_v_price_series) < 0))) __PYX_ERR(2, 211, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs_valid, Py_False) < (0)) __PYX_ERR(2, 212, __pyx_L1_error) + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5850, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_outfastk); + __Pyx_GIVEREF((PyObject *)__pyx_v_outfastk); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outfastk)) != (0)) __PYX_ERR(4, 5850, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outfastd); + __Pyx_GIVEREF((PyObject *)__pyx_v_outfastd); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outfastd)) != (0)) __PYX_ERR(4, 5850, __pyx_L1_error); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_AddTraceback("talib._ta_lib.Function.set_input_names", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STOCHF", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_local); - __Pyx_XDECREF(__pyx_v_input_name); - __Pyx_XDECREF(__pyx_v_price_series); + __Pyx_XDECREF((PyObject *)__pyx_v_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; @@ -42041,34 +43703,38 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_12set_input_names(CYTHON_UNU /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_15get_input_arrays(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_373STOCHRSI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_14get_input_arrays, "Function.get_input_arrays(self)\n\nReturns a copy of the dict of input arrays in use."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_15get_input_arrays = {"get_input_arrays", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_15get_input_arrays, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_14get_input_arrays}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_15get_input_arrays(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_372STOCHRSI, "STOCHRSI(ndarray real, int timeperiod=-0x80000000, int fastk_period=-0x80000000, int fastd_period=-0x80000000, int fastd_matype=0)\n\nSTOCHRSI(real[, timeperiod=?, fastk_period=?, fastd_period=?, fastd_matype=?])\n\nStochastic Relative Strength Index (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\n fastk_period: 5\n fastd_period: 3\n fastd_matype: 0 (Simple Moving Average)\nOutputs:\n fastk\n fastd"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_373STOCHRSI = {"STOCHRSI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_373STOCHRSI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_372STOCHRSI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_373STOCHRSI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + int __pyx_v_fastk_period; + int __pyx_v_fastd_period; + int __pyx_v_fastd_matype; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("get_input_arrays (wrapper)", 0); + __Pyx_RefNannySetupContext("STOCHRSI (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -42078,146 +43744,192 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_fastd_period,&__pyx_mstate_global->__pyx_n_u_fastd_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 216, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5852, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 5852, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 5852, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5852, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5852, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 216, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5852, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "get_input_arrays", 0) < (0)) __PYX_ERR(2, 216, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "STOCHRSI", 0) < (0)) __PYX_ERR(4, 5852, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("get_input_arrays", 1, 1, 1, i); __PYX_ERR(2, 216, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("STOCHRSI", 0, 1, 5, i); __PYX_ERR(4, 5852, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 216, __pyx_L3_error) + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 5852, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 5852, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5852, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5852, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5852, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5854, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5854, __pyx_L3_error) + } else { + __pyx_v_fastk_period = ((int)((int)-2147483648)); + } + if (values[3]) { + __pyx_v_fastd_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5854, __pyx_L3_error) + } else { + __pyx_v_fastd_period = ((int)((int)-2147483648)); + } + if (values[4]) { + __pyx_v_fastd_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5854, __pyx_L3_error) + } else { + __pyx_v_fastd_matype = ((int)((int)0)); } - __pyx_v_self = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("get_input_arrays", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 216, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("STOCHRSI", 0, 1, 5, __pyx_nargs); __PYX_ERR(4, 5852, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.Function.get_input_arrays", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STOCHRSI", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_14get_input_arrays(__pyx_self, __pyx_v_self); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 5854, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_372STOCHRSI(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_14get_input_arrays(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { - PyObject *__pyx_v_local = NULL; +static PyObject *__pyx_pf_5talib_7_ta_lib_372STOCHRSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outfastk = 0; + PyArrayObject *__pyx_v_outfastd = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; - int __pyx_t_3; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - size_t __pyx_t_6; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("get_input_arrays", 0); + __Pyx_RefNannySetupContext("STOCHRSI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 220, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5878, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_local = __pyx_t_1; + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 221, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = (__pyx_t_1 != Py_None); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (__pyx_t_3) { - } else { - __pyx_t_2 = __pyx_t_3; - goto __pyx_L4_bool_binop_done; - } + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 222, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5880, __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(4, 5883, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 222, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = PyObject_IsInstance(__pyx_t_1, __pyx_t_4); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 222, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __pyx_t_3; - __pyx_L4_bool_binop_done:; + __pyx_v_outfastk = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - if (__pyx_t_2) { + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5884, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outfastd = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_r); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 223, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_1 = __pyx_t_5; - __Pyx_INCREF(__pyx_t_1); - __pyx_t_6 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_1, NULL}; - __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_clone, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 223, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - } - __pyx_r = __pyx_t_4; - __pyx_t_4 = 0; - goto __pyx_L0; + __pyx_v_retCode = TA_STOCHRSI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outfastk)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outfastd)) + __pyx_v_lookback)); - } + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHRSI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5886, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /*else*/ { - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 225, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __pyx_t_1; - __Pyx_INCREF(__pyx_t_5); - __pyx_t_6 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL}; - __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_copy, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 225, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - } - __pyx_r = __pyx_t_4; - __pyx_t_4 = 0; - goto __pyx_L0; - } + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5887, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_outfastk); + __Pyx_GIVEREF((PyObject *)__pyx_v_outfastk); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outfastk)) != (0)) __PYX_ERR(4, 5887, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outfastd); + __Pyx_GIVEREF((PyObject *)__pyx_v_outfastd); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outfastd)) != (0)) __PYX_ERR(4, 5887, __pyx_L1_error); + __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_AddTraceback("talib._ta_lib.Function.get_input_arrays", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STOCHRSI", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_local); + __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; @@ -42225,24 +43937,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_14get_input_arrays(CYTHON_UN /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_17set_input_arrays(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_375SUB(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_16set_input_arrays, "Function.set_input_arrays(self, input_arrays)\n\nSets the dict of input_arrays to use. Returns True/False for\nsubclasses:\n\nIf input_arrays is a dict with the keys open, high, low, close and\nvolume, it is assigned as the input_array to use and this function\nreturns True, returning False otherwise. If you implement your own\ndata type and wish to subclass Function, you should wrap this function\nwith an if-statement:\n\nclass CustomFunction(Function):\n def __init__(self, function_name):\n Function.__init__(self, function_name)\n\n def set_input_arrays(self, input_data):\n if Function.set_input_arrays(self, input_data):\n return True\n elif isinstance(input_data, some_module.CustomDataType):\n input_arrays = Function.get_input_arrays(self)\n # convert input_data to input_arrays and then call the super\n Function.set_input_arrays(self, input_arrays)\n return True\n return False"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_17set_input_arrays = {"set_input_arrays", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_17set_input_arrays, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_16set_input_arrays}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_17set_input_arrays(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_374SUB, "SUB(ndarray real0, ndarray real1)\n\nSUB(real0, real1)\n\nVector Arithmetic Subtraction (Math Operators)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_375SUB = {"SUB", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_375SUB, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_374SUB}; +static PyObject *__pyx_pw_5talib_7_ta_lib_375SUB(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; - PyObject *__pyx_v_input_arrays = 0; + PyArrayObject *__pyx_v_real0 = 0; + PyArrayObject *__pyx_v_real1 = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -42253,7 +43965,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("set_input_arrays (wrapper)", 0); + __Pyx_RefNannySetupContext("SUB (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -42263,293 +43975,139 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_input_arrays,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 227, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5889, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 227, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5889, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 227, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5889, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "set_input_arrays", 0) < (0)) __PYX_ERR(2, 227, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SUB", 0) < (0)) __PYX_ERR(4, 5889, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("set_input_arrays", 1, 2, 2, i); __PYX_ERR(2, 227, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SUB", 1, 2, 2, i); __PYX_ERR(4, 5889, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 227, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5889, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 227, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5889, __pyx_L3_error) } - __pyx_v_self = values[0]; - __pyx_v_input_arrays = values[1]; + __pyx_v_real0 = ((PyArrayObject *)values[0]); + __pyx_v_real1 = ((PyArrayObject *)values[1]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("set_input_arrays", 1, 2, 2, __pyx_nargs); __PYX_ERR(2, 227, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("SUB", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 5889, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.Function.set_input_arrays", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SUB", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_16set_input_arrays(__pyx_self, __pyx_v_self, __pyx_v_input_arrays); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(4, 5891, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(4, 5891, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_374SUB(__pyx_self, __pyx_v_real0, __pyx_v_real1); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_16set_input_arrays(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_arrays) { - PyObject *__pyx_v_local = NULL; - PyObject *__pyx_v_missing_keys = NULL; - PyObject *__pyx_v_key = NULL; - PyObject *__pyx_v_missing = NULL; +static PyObject *__pyx_pf_5talib_7_ta_lib_374SUB(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; - int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - size_t __pyx_t_4; - Py_ssize_t __pyx_t_5; - PyObject *(*__pyx_t_6)(PyObject *); - int __pyx_t_7; - int __pyx_t_8; - PyObject *__pyx_t_9 = NULL; - PyObject *__pyx_t_10 = NULL; - PyObject *__pyx_t_11[4]; - PyObject *__pyx_t_12 = 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("set_input_arrays", 0); + __Pyx_RefNannySetupContext("SUB", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real0); + __Pyx_INCREF((PyObject *)__pyx_v_real1); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 252, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5909, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_local = __pyx_t_1; + __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 253, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5910, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyObject_IsInstance(__pyx_v_input_arrays, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(2, 253, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (__pyx_t_2) { - - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 254, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_missing_keys = ((PyObject*)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_3 = __pyx_v_self; - __Pyx_INCREF(__pyx_t_3); - __pyx_t_4 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__input_price_series_na, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 255, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { - __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); - __pyx_t_5 = 0; - __pyx_t_6 = NULL; - } else { - __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 255, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_6 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 255, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - for (;;) { - if (likely(!__pyx_t_6)) { - if (likely(PyList_CheckExact(__pyx_t_3))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 255, __pyx_L1_error) - #endif - if (__pyx_t_5 >= __pyx_temp) break; - } - __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_3, __pyx_t_5, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_5; - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 255, __pyx_L1_error) - #endif - if (__pyx_t_5 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5)); - #else - __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_5); - #endif - ++__pyx_t_5; - } - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 255, __pyx_L1_error) - } else { - __pyx_t_1 = __pyx_t_6(__pyx_t_3); - if (unlikely(!__pyx_t_1)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 255, __pyx_L1_error) - PyErr_Clear(); - } - break; - } - } - __Pyx_GOTREF(__pyx_t_1); - __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_1); - __pyx_t_1 = 0; - - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 256, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = (__pyx_t_1 != Py_None); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (__pyx_t_7) { - } else { - __pyx_t_2 = __pyx_t_7; - goto __pyx_L7_bool_binop_done; - } - - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 257, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = PyObject_IsInstance(__pyx_v_input_arrays, __pyx_t_1); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(2, 257, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_t_7; - __pyx_L7_bool_binop_done:; - - if (__pyx_t_2) { - - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_input_arrays, __pyx_mstate_global->__pyx_n_u_columns); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 258, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_key, __pyx_t_1, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 258, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 258, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_XDECREF_SET(__pyx_v_missing, __pyx_t_1); - __pyx_t_1 = 0; - - goto __pyx_L6; - } - - /*else*/ { - __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_key, __pyx_v_input_arrays, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 260, __pyx_L1_error) - __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 260, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_XDECREF_SET(__pyx_v_missing, __pyx_t_1); - __pyx_t_1 = 0; - } - __pyx_L6:; - - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_missing); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 261, __pyx_L1_error) - if (__pyx_t_2) { - - __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_missing_keys, __pyx_v_key); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(2, 262, __pyx_L1_error) - - } - - } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - __pyx_t_5 = __Pyx_PyList_GET_SIZE(__pyx_v_missing_keys); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(2, 263, __pyx_L1_error) - __pyx_t_2 = (__pyx_t_5 == 0); - if (likely(__pyx_t_2)) { - - if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays, __pyx_v_input_arrays) < (0)) __PYX_ERR(2, 264, __pyx_L1_error) - - if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs_valid, Py_False) < (0)) __PYX_ERR(2, 265, __pyx_L1_error) + __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(Py_True); - __pyx_r = Py_True; - goto __pyx_L0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 5911, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5912, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; - /*else*/ { - __pyx_t_1 = NULL; + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_t_5 = __Pyx_PyList_GET_SIZE(__pyx_v_missing_keys); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(2, 269, __pyx_L1_error) - __pyx_t_2 = (__pyx_t_5 > 1); - if (__pyx_t_2) { - __Pyx_INCREF(__pyx_mstate_global->__pyx_n_u_s); - __pyx_t_9 = __pyx_mstate_global->__pyx_n_u_s; - } else { - __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u__2); - __pyx_t_9 = __pyx_mstate_global->__pyx_kp_u__2; - } - __pyx_t_10 = __Pyx_PyUnicode_Unicode(__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 269, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_v_lookback = (__pyx_v_begidx + TA_SUB_Lookback()); - __pyx_t_9 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__3, __pyx_v_missing_keys); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 271, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_11[0] = __pyx_mstate_global->__pyx_kp_u_input_arrays_parameter_missing_r; - __pyx_t_11[1] = __pyx_t_10; - __pyx_t_11[2] = __pyx_mstate_global->__pyx_kp_u_; - __pyx_t_11[3] = __pyx_t_9; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5915, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_12 = __Pyx_PyUnicode_Join(__pyx_t_11, 4, 48 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_10) + 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_10) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_9)); - if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 268, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_4 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_t_12}; - __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_Exception)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 268, __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, 268, __pyx_L1_error) - } + __pyx_v_retCode = TA_SUB(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - } + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUB, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5917, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(Py_False); - __pyx_r = Py_False; + __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_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_9); - __Pyx_XDECREF(__pyx_t_10); - __Pyx_XDECREF(__pyx_t_12); - __Pyx_AddTraceback("talib._ta_lib.Function.set_input_arrays", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SUB", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_local); - __Pyx_XDECREF(__pyx_v_missing_keys); - __Pyx_XDECREF(__pyx_v_key); - __Pyx_XDECREF(__pyx_v_missing); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real0); + __Pyx_XDECREF((PyObject *)__pyx_v_real1); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -42557,34 +44115,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_16set_input_arrays(CYTHON_UN /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_19get_parameters(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_377SUM(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_18get_parameters, "Function.get_parameters(self)\n\nReturns the function's optional parameters and their default values."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_19get_parameters = {"get_parameters", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_19get_parameters, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_18get_parameters}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_19get_parameters(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_376SUM, "SUM(ndarray real, int timeperiod=-0x80000000)\n\nSUM(real[, timeperiod=?])\n\nSummation (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_377SUM = {"SUM", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_377SUM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_376SUM}; +static PyObject *__pyx_pw_5talib_7_ta_lib_377SUM(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("get_parameters (wrapper)", 0); + __Pyx_RefNannySetupContext("SUM (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -42594,190 +44153,138 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 276, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5920, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5920, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 276, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5920, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "get_parameters", 0) < (0)) __PYX_ERR(2, 276, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SUM", 0) < (0)) __PYX_ERR(4, 5920, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("get_parameters", 1, 1, 1, i); __PYX_ERR(2, 276, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SUM", 0, 1, 2, i); __PYX_ERR(4, 5920, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 276, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5920, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5920, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5922, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_self = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("get_parameters", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 276, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("SUM", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 5920, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.Function.get_parameters", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SUM", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_18get_parameters(__pyx_self, __pyx_v_self); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 5922, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_376SUM(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_18get_parameters(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { - PyObject *__pyx_v_local = NULL; - PyObject *__pyx_v_ret = NULL; - PyObject *__pyx_v_opt_input = NULL; +static PyObject *__pyx_pf_5talib_7_ta_lib_376SUM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - size_t __pyx_t_4; - Py_ssize_t __pyx_t_5; - PyObject *(*__pyx_t_6)(PyObject *); + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("get_parameters", 0); + __Pyx_RefNannySetupContext("SUM", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 280, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5941, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_local = __pyx_t_1; + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_OrderedDict); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 281, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); - assert(__pyx_t_2); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_2); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_3, __pyx__function); - __pyx_t_4 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 281, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_v_ret = __pyx_t_1; - __pyx_t_1 = 0; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5943, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 282, __pyx_L1_error) + __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(4, 5946, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { - __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); - __pyx_t_5 = 0; - __pyx_t_6 = NULL; - } else { - __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 282, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_6 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 282, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - for (;;) { - if (likely(!__pyx_t_6)) { - if (likely(PyList_CheckExact(__pyx_t_3))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 282, __pyx_L1_error) - #endif - if (__pyx_t_5 >= __pyx_temp) break; - } - __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_3, __pyx_t_5, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_5; - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 282, __pyx_L1_error) - #endif - if (__pyx_t_5 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5)); - #else - __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_5); - #endif - ++__pyx_t_5; - } - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 282, __pyx_L1_error) - } else { - __pyx_t_1 = __pyx_t_6(__pyx_t_3); - if (unlikely(!__pyx_t_1)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 282, __pyx_L1_error) - PyErr_Clear(); - } - break; - } - } - __Pyx_GOTREF(__pyx_t_1); - __Pyx_XDECREF_SET(__pyx_v_opt_input, __pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_2 = __pyx_v_self; - __Pyx_INCREF(__pyx_t_2); - __pyx_t_4 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_opt_input}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__get_opt_input_value, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 283, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - if (unlikely((PyObject_SetItem(__pyx_v_ret, __pyx_v_opt_input, __pyx_t_1) < 0))) __PYX_ERR(2, 283, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_retCode = TA_SUM(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5948, __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_ret); - __pyx_r = __pyx_v_ret; + __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_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.Function.get_parameters", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SUM", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_local); - __Pyx_XDECREF(__pyx_v_ret); - __Pyx_XDECREF(__pyx_v_opt_input); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -42785,36 +44292,38 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_18get_parameters(CYTHON_UNUS /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_21set_parameters(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_379SUPERTREND(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_20set_parameters, "Function.set_parameters(self, parameters=None, **kwargs)\n\nSets the function parameter values."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_21set_parameters = {"set_parameters", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_21set_parameters, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_20set_parameters}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_21set_parameters(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_378SUPERTREND, "SUPERTREND(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000, double multiplier=3.0)\n\nSUPERTREND(high, low, close[, timeperiod=?, multiplier=?])\n\nSuperTrend (Overlap Studies)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n timeperiod: 10\n multiplier: 3.0\nOutputs:\n real\n integer"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_379SUPERTREND = {"SUPERTREND", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_379SUPERTREND, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_378SUPERTREND}; +static PyObject *__pyx_pw_5talib_7_ta_lib_379SUPERTREND(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; - PyObject *__pyx_v_parameters = 0; - PyObject *__pyx_v_kwargs = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + double __pyx_v_multiplier; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("set_parameters (wrapper)", 0); + __Pyx_RefNannySetupContext("SUPERTREND (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -42823,297 +44332,199 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - __pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return NULL; - __Pyx_GOTREF(__pyx_v_kwargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_parameters,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_multiplier,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 286, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5951, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 5951, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 5951, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5951, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 286, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5951, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 286, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5951, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, __pyx_v_kwargs, values, kwd_pos_args, __pyx_kwds_len, "set_parameters", 1) < (0)) __PYX_ERR(2, 286, __pyx_L3_error) - if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_None)); - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("set_parameters", 0, 1, 2, i); __PYX_ERR(2, 286, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SUPERTREND", 0) < (0)) __PYX_ERR(4, 5951, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SUPERTREND", 0, 3, 5, i); __PYX_ERR(4, 5951, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 286, __pyx_L3_error) + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 5951, __pyx_L3_error) CYTHON_FALLTHROUGH; - case 1: + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 5951, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5951, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5951, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 286, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5951, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } - if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_None)); } - __pyx_v_self = values[0]; - __pyx_v_parameters = values[1]; + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5953, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + if (values[4]) { + __pyx_v_multiplier = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_multiplier == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 5953, __pyx_L3_error) + } else { + __pyx_v_multiplier = ((double)((double)3.0)); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("set_parameters", 0, 1, 2, __pyx_nargs); __PYX_ERR(2, 286, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("SUPERTREND", 0, 3, 5, __pyx_nargs); __PYX_ERR(4, 5951, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0; - __Pyx_AddTraceback("talib._ta_lib.Function.set_parameters", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SUPERTREND", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_20set_parameters(__pyx_self, __pyx_v_self, __pyx_v_parameters, __pyx_v_kwargs); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 5953, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 5953, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 5953, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_378SUPERTREND(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod, __pyx_v_multiplier); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_DECREF(__pyx_v_kwargs); + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_20set_parameters(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_parameters, PyObject *__pyx_v_kwargs) { - PyObject *__pyx_v_local = NULL; - PyObject *__pyx_v_param = NULL; - PyObject *__pyx_v_value = NULL; +static PyObject *__pyx_pf_5talib_7_ta_lib_378SUPERTREND(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod, double __pyx_v_multiplier) { + 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; + PyArrayObject *__pyx_v_outinteger = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - size_t __pyx_t_4; - 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 = NULL; - PyObject *(*__pyx_t_10)(PyObject *); + 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("set_parameters", 0); - __Pyx_INCREF(__pyx_v_parameters); + __Pyx_RefNannySetupContext("SUPERTREND", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 290, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5975, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_local = __pyx_t_1; + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_parameters); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 291, __pyx_L1_error) - if (!__pyx_t_2) { - } else { - __Pyx_INCREF(__pyx_v_parameters); - __pyx_t_1 = __pyx_v_parameters; - goto __pyx_L3_bool_binop_done; - } - __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 291, __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 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5976, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_v_parameters; - __Pyx_INCREF(__pyx_t_3); - __pyx_t_4 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_kwargs}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_update, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 292, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __Pyx_DECREF(__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(4, 5977, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_3 = __pyx_v_parameters; - __Pyx_INCREF(__pyx_t_3); - __pyx_t_4 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_items, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 293, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { - __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); - __pyx_t_5 = 0; - __pyx_t_6 = NULL; - } else { - __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 293, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_6 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 293, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - for (;;) { - if (likely(!__pyx_t_6)) { - if (likely(PyList_CheckExact(__pyx_t_3))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 293, __pyx_L1_error) - #endif - if (__pyx_t_5 >= __pyx_temp) break; - } - __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_3, __pyx_t_5, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_5; - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 293, __pyx_L1_error) - #endif - if (__pyx_t_5 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5)); - #else - __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_5); - #endif - ++__pyx_t_5; - } - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 293, __pyx_L1_error) - } else { - __pyx_t_1 = __pyx_t_6(__pyx_t_3); - if (unlikely(!__pyx_t_1)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 293, __pyx_L1_error) - PyErr_Clear(); - } - break; - } - } - __Pyx_GOTREF(__pyx_t_1); - if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { - PyObject* sequence = __pyx_t_1; - Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); - if (unlikely(size != 2)) { - if (size > 2) __Pyx_RaiseTooManyValuesError(2); - else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(2, 293, __pyx_L1_error) - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - if (likely(PyTuple_CheckExact(sequence))) { - __pyx_t_7 = PyTuple_GET_ITEM(sequence, 0); - __Pyx_INCREF(__pyx_t_7); - __pyx_t_8 = PyTuple_GET_ITEM(sequence, 1); - __Pyx_INCREF(__pyx_t_8); - } else { - __pyx_t_7 = __Pyx_PyList_GetItemRefFast(sequence, 0, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 293, __pyx_L1_error) - __Pyx_XGOTREF(__pyx_t_7); - __pyx_t_8 = __Pyx_PyList_GetItemRefFast(sequence, 1, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 293, __pyx_L1_error) - __Pyx_XGOTREF(__pyx_t_8); - } - #else - __pyx_t_7 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 293, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 293, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - #endif - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - } else { - Py_ssize_t index = -1; - __pyx_t_9 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 293, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_10 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_9); - index = 0; __pyx_t_7 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_7)) goto __pyx_L7_unpacking_failed; - __Pyx_GOTREF(__pyx_t_7); - index = 1; __pyx_t_8 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_8)) goto __pyx_L7_unpacking_failed; - __Pyx_GOTREF(__pyx_t_8); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 2) < (0)) __PYX_ERR(2, 293, __pyx_L1_error) - __pyx_t_10 = NULL; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - goto __pyx_L8_unpacking_done; - __pyx_L7_unpacking_failed:; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_10 = NULL; - if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(2, 293, __pyx_L1_error) - __pyx_L8_unpacking_done:; - } - __Pyx_XDECREF_SET(__pyx_v_param, __pyx_t_7); - __pyx_t_7 = 0; - __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_8); - __pyx_t_8 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 5978, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - __pyx_t_8 = __pyx_v_self; - __Pyx_INCREF(__pyx_t_8); - __pyx_t_4 = 0; - { - PyObject *__pyx_callargs[3] = {__pyx_t_8, __pyx_v_param, __pyx_v_value}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__check_opt_input_value, __pyx_callargs+__pyx_t_4, (3-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 294, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 294, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (__pyx_t_2) { + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5979, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 295, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_param); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 295, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely((PyObject_SetItem(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_value, __pyx_v_value) < 0))) __PYX_ERR(2, 295, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - } + __pyx_v_lookback = (__pyx_v_begidx + TA_SUPERTREND_Lookback(__pyx_v_timeperiod, __pyx_v_multiplier)); - } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 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(4, 5982, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs_valid, Py_False) < (0)) __PYX_ERR(2, 296, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5983, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_parameters); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 297, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 297, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - if (unlikely((PyObject_SetItem(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_parameters, __pyx_t_3) < 0))) __PYX_ERR(2, 297, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_retCode = TA_SUPERTREND(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_multiplier, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUPERTREND, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5985, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5986, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __Pyx_GIVEREF((PyObject *)__pyx_v_outreal); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outreal)) != (0)) __PYX_ERR(4, 5986, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __Pyx_GIVEREF((PyObject *)__pyx_v_outinteger); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outinteger)) != (0)) __PYX_ERR(4, 5986, __pyx_L1_error); + __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_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); - __Pyx_AddTraceback("talib._ta_lib.Function.set_parameters", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SUPERTREND", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_local); - __Pyx_XDECREF(__pyx_v_param); - __Pyx_XDECREF(__pyx_v_value); - __Pyx_XDECREF(__pyx_v_parameters); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -43121,36 +44532,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_20set_parameters(CYTHON_UNUS /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_23set_function_args(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_381T3(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_22set_function_args, "Function.set_function_args(self, *args, **kwargs)\n\noptional args:[input_arrays,] [parameter_args,] [input_price_series_kwargs,] [parameter_kwargs]"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_23set_function_args = {"set_function_args", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_23set_function_args, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_22set_function_args}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_23set_function_args(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_380T3, "T3(ndarray real, int timeperiod=-0x80000000, double vfactor=-4e37)\n\nT3(real[, timeperiod=?, vfactor=?])\n\nTriple Exponential Moving Average (T3) (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 5\n vfactor: 0.7\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_381T3 = {"T3", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_381T3, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_380T3}; +static PyObject *__pyx_pw_5talib_7_ta_lib_381T3(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; - PyObject *__pyx_v_args = 0; - PyObject *__pyx_v_kwargs = 0; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + double __pyx_v_vfactor; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("set_function_args (wrapper)", 0); + __Pyx_RefNannySetupContext("T3 (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -43159,404 +44570,312 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - __pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return NULL; - __Pyx_GOTREF(__pyx_v_kwargs); - __pyx_v_args = __Pyx_ArgsSlice_FASTCALL(__pyx_args, 1, __pyx_nargs); - if (unlikely(!__pyx_v_args)) { - __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0; - __Pyx_RefNannyFinishContext(); - return NULL; - } - __Pyx_GOTREF(__pyx_v_args); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_vfactor,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 301, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5988, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - default: + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5988, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5988, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 301, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5988, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; + default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - const Py_ssize_t used_pos_args = (kwd_pos_args < 1) ? kwd_pos_args : 1; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, __pyx_kwds_len, "set_function_args", 1) < (0)) __PYX_ERR(2, 301, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "T3", 0) < (0)) __PYX_ERR(4, 5988, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("set_function_args", 0, 1, 1, i); __PYX_ERR(2, 301, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("T3", 0, 1, 3, i); __PYX_ERR(4, 5988, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs < 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 301, __pyx_L3_error) - } - __pyx_v_self = values[0]; - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("set_function_args", 0, 1, 1, __pyx_nargs); __PYX_ERR(2, 301, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5988, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5988, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5988, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5990, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_vfactor = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_vfactor == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 5990, __pyx_L3_error) + } else { + __pyx_v_vfactor = ((double)((double)-4e37)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("T3", 0, 1, 3, __pyx_nargs); __PYX_ERR(4, 5988, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_DECREF(__pyx_v_args); __pyx_v_args = 0; - __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0; - __Pyx_AddTraceback("talib._ta_lib.Function.set_function_args", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.T3", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_22set_function_args(__pyx_self, __pyx_v_self, __pyx_v_args, __pyx_v_kwargs); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 5990, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_380T3(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_vfactor); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_DECREF(__pyx_v_args); - __Pyx_DECREF(__pyx_v_kwargs); + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_22set_function_args(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs) { - PyObject *__pyx_v_local = NULL; - int __pyx_v_update_info; - PyObject *__pyx_v_key = NULL; - PyObject *__pyx_v_value = NULL; - PyObject *__pyx_v_skip_first = NULL; - PyObject *__pyx_v_i = NULL; - PyObject *__pyx_v_param_name = NULL; +static PyObject *__pyx_pf_5talib_7_ta_lib_380T3(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; - Py_ssize_t __pyx_t_2; - Py_ssize_t __pyx_t_3; - int __pyx_t_4; - PyObject *__pyx_t_5 = NULL; - int __pyx_t_6; - int __pyx_t_7; - PyObject *__pyx_t_8 = NULL; - size_t __pyx_t_9; - PyObject *__pyx_t_10 = NULL; - PyObject *(*__pyx_t_11)(PyObject *); - int __pyx_t_12; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("set_function_args", 0); + __Pyx_RefNannySetupContext("T3", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 305, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6010, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_local = __pyx_t_1; + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_update_info = 0; - - __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_dict_iterator(__pyx_v_kwargs, 1, ((PyObject *)NULL), (&__pyx_t_3), (&__pyx_t_4)); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 308, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_1); - __pyx_t_1 = __pyx_t_5; - __pyx_t_5 = 0; - while (1) { - __pyx_t_6 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_3, &__pyx_t_2, &__pyx_t_5, NULL, NULL, __pyx_t_4); - if (unlikely(__pyx_t_6 == 0)) break; - if (unlikely(__pyx_t_6 == -1)) __PYX_ERR(2, 308, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_5); - __pyx_t_5 = 0; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 309, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_7 = (__Pyx_PySequence_ContainsTF(__pyx_v_key, __pyx_t_5, Py_EQ)); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 309, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (__pyx_t_7) { + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6012, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; - __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_kwargs, __pyx_v_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 310, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_5); - __pyx_t_5 = 0; + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_t_8 = __pyx_v_self; - __Pyx_INCREF(__pyx_t_8); - __pyx_t_9 = 0; - { - PyObject *__pyx_callargs[3] = {__pyx_t_8, __pyx_v_key, __pyx_v_value}; - __pyx_t_5 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__check_opt_input_value, __pyx_callargs+__pyx_t_9, (3-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 311, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - } - __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 311, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (__pyx_t_7) { + __pyx_v_lookback = (__pyx_v_begidx + TA_T3_Lookback(__pyx_v_timeperiod, __pyx_v_vfactor)); - __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_kwargs, __pyx_v_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 312, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 312, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_key); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 312, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely((PyObject_SetItem(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_value, __pyx_t_5) < 0))) __PYX_ERR(2, 312, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6015, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_v_update_info = 1; + __pyx_v_retCode = TA_T3(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_vfactor, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - } + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_T3, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6017, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - goto __pyx_L5; - } + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + goto __pyx_L0; - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 314, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_7 = (__Pyx_PySequence_ContainsTF(__pyx_v_key, __pyx_t_5, Py_EQ)); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 314, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (__pyx_t_7) { - __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_kwargs, __pyx_v_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 315, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 315, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_key); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 315, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (unlikely((PyObject_SetItem(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_price_series, __pyx_t_5) < 0))) __PYX_ERR(2, 315, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + /* 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; +} - __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_kwargs, __pyx_v_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 316, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 316, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_10 = __Pyx_PyObject_Dict_GetItem(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 316, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely((PyObject_SetItem(__pyx_t_10, __pyx_v_key, __pyx_t_5) < 0))) __PYX_ERR(2, 316, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_383TAN(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_382TAN, "TAN(ndarray real)\n\nTAN(real)\n\nVector Trigonometric Tan (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_383TAN = {"TAN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_383TAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_382TAN}; +static PyObject *__pyx_pw_5talib_7_ta_lib_383TAN(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("TAN (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 6020, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6020, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TAN", 0) < (0)) __PYX_ERR(4, 6020, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TAN", 1, 1, 1, i); __PYX_ERR(4, 6020, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6020, __pyx_L3_error) } - __pyx_L5:; + __pyx_v_real = ((PyArrayObject *)values[0]); } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_v_args); - if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(2, 318, __pyx_L1_error) - __pyx_t_7 = (__pyx_temp != 0); + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("TAN", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 6020, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); } + __Pyx_AddTraceback("talib._ta_lib.TAN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 6022, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_382TAN(__pyx_self, __pyx_v_real); - if (__pyx_t_7) { - - __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); - __pyx_v_skip_first = __pyx_mstate_global->__pyx_int_0; - - __pyx_t_5 = __pyx_v_self; - __Pyx_INCREF(__pyx_t_5); - __pyx_t_10 = __Pyx_GetItemInt_Tuple(__pyx_v_args, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 320, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __pyx_t_9 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_10}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_input_arrays, __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 320, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 320, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (__pyx_t_7) { - - __Pyx_INCREF(__pyx_mstate_global->__pyx_int_1); - __Pyx_DECREF_SET(__pyx_v_skip_first, __pyx_mstate_global->__pyx_int_1); - - } - - __pyx_t_3 = __Pyx_PyTuple_GET_SIZE(__pyx_v_args); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(2, 322, __pyx_L1_error) - __pyx_t_1 = PyLong_FromSsize_t(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 322, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_10 = PyObject_RichCompare(__pyx_t_1, __pyx_v_skip_first, Py_GT); __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 322, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 322, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (__pyx_t_7) { - - __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); - __pyx_t_10 = __pyx_mstate_global->__pyx_int_0; - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 323, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { - __pyx_t_5 = __pyx_t_1; __Pyx_INCREF(__pyx_t_5); - __pyx_t_3 = 0; - __pyx_t_11 = NULL; - } else { - __pyx_t_3 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 323, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_11 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_5); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 323, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - for (;;) { - if (likely(!__pyx_t_11)) { - if (likely(PyList_CheckExact(__pyx_t_5))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_5); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 323, __pyx_L1_error) - #endif - if (__pyx_t_3 >= __pyx_temp) break; - } - __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_5, __pyx_t_3, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_3; - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_5); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 323, __pyx_L1_error) - #endif - if (__pyx_t_3 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_3)); - #else - __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_5, __pyx_t_3); - #endif - ++__pyx_t_3; - } - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 323, __pyx_L1_error) - } else { - __pyx_t_1 = __pyx_t_11(__pyx_t_5); - if (unlikely(!__pyx_t_1)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 323, __pyx_L1_error) - PyErr_Clear(); - } - break; - } - } - __Pyx_GOTREF(__pyx_t_1); - __Pyx_XDECREF_SET(__pyx_v_param_name, __pyx_t_1); - __pyx_t_1 = 0; - __Pyx_INCREF(__pyx_t_10); - __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_10); - __pyx_t_1 = __Pyx_PyLong_AddObjC(__pyx_t_10, __pyx_mstate_global->__pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 323, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_10); - __pyx_t_10 = __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(2, 324, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_i, __pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_2 = __Pyx_PyTuple_GET_SIZE(__pyx_v_args); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(2, 325, __pyx_L1_error) - __pyx_t_1 = PyLong_FromSsize_t(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 325, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_8 = PyObject_RichCompare(__pyx_v_i, __pyx_t_1, Py_LT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 325, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 325, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (__pyx_t_7) { - - __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_args, __pyx_v_i); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 326, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_8); - __pyx_t_8 = 0; - - __pyx_t_1 = __pyx_v_self; - __Pyx_INCREF(__pyx_t_1); - __pyx_t_9 = 0; - { - PyObject *__pyx_callargs[3] = {__pyx_t_1, __pyx_v_param_name, __pyx_v_value}; - __pyx_t_8 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__check_opt_input_value, __pyx_callargs+__pyx_t_9, (3-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 327, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - } - __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 327, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (__pyx_t_7) { - - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 328, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_param_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 328, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely((PyObject_SetItem(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_value, __pyx_v_value) < 0))) __PYX_ERR(2, 328, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_v_update_info = 1; - - } - - } + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} - } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_382TAN(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(4, 6039, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - } + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_v_args); - if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(2, 331, __pyx_L1_error) - __pyx_t_12 = (__pyx_temp != 0); - } + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6041, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; - if (!__pyx_t_12) { - } else { - __pyx_t_7 = __pyx_t_12; - goto __pyx_L16_bool_binop_done; - } - __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely((__pyx_t_12 < 0))) __PYX_ERR(2, 331, __pyx_L1_error) - __pyx_t_7 = __pyx_t_12; - __pyx_L16_bool_binop_done:; - if (__pyx_t_7) { + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - if (__pyx_v_update_info) { + __pyx_v_lookback = (__pyx_v_begidx + TA_TAN_Lookback()); - __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_parameters); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 333, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 333, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - if (unlikely((PyObject_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_parameters, __pyx_t_10) < 0))) __PYX_ERR(2, 333, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 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(4, 6044, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs_valid, Py_False) < (0)) __PYX_ERR(2, 334, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6046, __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_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_10); - __Pyx_AddTraceback("talib._ta_lib.Function.set_function_args", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TAN", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_local); - __Pyx_XDECREF(__pyx_v_key); - __Pyx_XDECREF(__pyx_v_value); - __Pyx_XDECREF(__pyx_v_skip_first); - __Pyx_XDECREF(__pyx_v_i); - __Pyx_XDECREF(__pyx_v_param_name); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -43564,23 +44883,23 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_22set_function_args(CYTHON_U /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_25lookback(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_385TANH(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_24lookback, "Function.lookback(self)\n\nReturns the lookback window size for the function with the parameter\nvalues that are currently set."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_25lookback = {"lookback", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_25lookback, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_24lookback}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_25lookback(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_384TANH, "TANH(ndarray real)\n\nTANH(real)\n\nVector Trigonometric Tanh (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_385TANH = {"TANH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_385TANH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_384TANH}; +static PyObject *__pyx_pw_5talib_7_ta_lib_385TANH(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; + PyArrayObject *__pyx_v_real = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -43591,7 +44910,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("lookback (wrapper)", 0); + __Pyx_RefNannySetupContext("TANH (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -43601,271 +44920,299 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 336, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 6049, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 336, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6049, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "lookback", 0) < (0)) __PYX_ERR(2, 336, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TANH", 0) < (0)) __PYX_ERR(4, 6049, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("lookback", 1, 1, 1, i); __PYX_ERR(2, 336, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TANH", 1, 1, 1, i); __PYX_ERR(4, 6049, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 336, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6049, __pyx_L3_error) } - __pyx_v_self = values[0]; + __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("lookback", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 336, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("TANH", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 6049, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.Function.lookback", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TANH", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_24lookback(__pyx_self, __pyx_v_self); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 6051, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_384TANH(__pyx_self, __pyx_v_real); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_24lookback(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { - PyObject *__pyx_v_local = NULL; - TA_ParamHolder *__pyx_v_holder; - PyObject *__pyx_v_i = NULL; - PyObject *__pyx_v_opt_input = NULL; - PyObject *__pyx_v_value = NULL; - PyObject *__pyx_v_type_ = NULL; +static PyObject *__pyx_pf_5talib_7_ta_lib_384TANH(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; - char *__pyx_t_2; - TA_ParamHolder *__pyx_t_3; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - Py_ssize_t __pyx_t_6; - PyObject *(*__pyx_t_7)(PyObject *); - PyObject *__pyx_t_8 = NULL; - size_t __pyx_t_9; - int __pyx_t_10; - int __pyx_t_11; - int __pyx_t_12; - double __pyx_t_13; - int __pyx_t_14; - int __pyx_t_15; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("lookback", 0); + __Pyx_RefNannySetupContext("TANH", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 342, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6068, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_local = __pyx_t_1; + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6070, __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(4, 6073, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 344, __pyx_L1_error) + __pyx_v_retCode = TA_TANH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TANH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_AsWritableString(__pyx_t_1); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(2, 344, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5talib_7_ta_lib___ta_paramHolderAlloc(__pyx_t_2); if (unlikely(__pyx_t_3 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(2, 344, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_holder = __pyx_t_3; - __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); - __pyx_t_1 = __pyx_mstate_global->__pyx_int_0; - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 345, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) { - __pyx_t_5 = __pyx_t_4; __Pyx_INCREF(__pyx_t_5); - __pyx_t_6 = 0; - __pyx_t_7 = NULL; - } else { - __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 345, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_7 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 345, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - for (;;) { - if (likely(!__pyx_t_7)) { - if (likely(PyList_CheckExact(__pyx_t_5))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_5); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 345, __pyx_L1_error) - #endif - if (__pyx_t_6 >= __pyx_temp) break; - } - __pyx_t_4 = __Pyx_PyList_GetItemRefFast(__pyx_t_5, __pyx_t_6, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_6; - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_5); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 345, __pyx_L1_error) - #endif - if (__pyx_t_6 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6)); - #else - __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_5, __pyx_t_6); - #endif - ++__pyx_t_6; + __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_387TEMA(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_386TEMA, "TEMA(ndarray real, int timeperiod=-0x80000000)\n\nTEMA(real[, timeperiod=?])\n\nTriple Exponential Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_387TEMA = {"TEMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_387TEMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_386TEMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_387TEMA(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("TEMA (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 6078, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6078, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6078, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TEMA", 0) < (0)) __PYX_ERR(4, 6078, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TEMA", 0, 1, 2, i); __PYX_ERR(4, 6078, __pyx_L3_error) } } - if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 345, __pyx_L1_error) } else { - __pyx_t_4 = __pyx_t_7(__pyx_t_5); - if (unlikely(!__pyx_t_4)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 345, __pyx_L1_error) - PyErr_Clear(); - } + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6078, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6078, __pyx_L3_error) break; + default: goto __pyx_L5_argtuple_error; } } - __Pyx_GOTREF(__pyx_t_4); - __Pyx_XDECREF_SET(__pyx_v_opt_input, __pyx_t_4); - __pyx_t_4 = 0; - __Pyx_INCREF(__pyx_t_1); - __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_1); - __pyx_t_4 = __Pyx_PyLong_AddObjC(__pyx_t_1, __pyx_mstate_global->__pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 345, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_1); - __pyx_t_1 = __pyx_t_4; - __pyx_t_4 = 0; - - __pyx_t_8 = __pyx_v_self; - __Pyx_INCREF(__pyx_t_8); - __pyx_t_9 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_v_opt_input}; - __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__get_opt_input_value, __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 346, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6080, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_4); - __pyx_t_4 = 0; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("TEMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 6078, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.TEMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 6080, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_386TEMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 347, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_opt_input); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 347, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyObject_Dict_GetItem(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_type_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 347, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_XDECREF_SET(__pyx_v_type_, __pyx_t_4); - __pyx_t_4 = 0; + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} - __pyx_t_4 = __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInput_RealRange); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 348, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_8 = PyObject_RichCompare(__pyx_v_type_, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 348, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(2, 348, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (!__pyx_t_11) { - } else { - __pyx_t_10 = __pyx_t_11; - goto __pyx_L6_bool_binop_done; - } - __pyx_t_8 = __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInput_RealList); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 348, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_4 = PyObject_RichCompare(__pyx_v_type_, __pyx_t_8, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 348, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(2, 348, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_10 = __pyx_t_11; - __pyx_L6_bool_binop_done:; - if (__pyx_t_10) { +static PyObject *__pyx_pf_5talib_7_ta_lib_386TEMA(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_12 = __Pyx_PyLong_As_int(__pyx_v_i); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 349, __pyx_L1_error) - __pyx_t_13 = __Pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_13 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 349, __pyx_L1_error) - __pyx_t_14 = __pyx_f_5talib_7_ta_lib___ta_setOptInputParamReal(__pyx_v_holder, __pyx_t_12, __pyx_t_13); if (unlikely(__pyx_t_14 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(2, 349, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6099, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - goto __pyx_L5; - } + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_4 = __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInput_IntegerRange); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 350, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_8 = PyObject_RichCompare(__pyx_v_type_, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 350, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(2, 350, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (!__pyx_t_11) { - } else { - __pyx_t_10 = __pyx_t_11; - goto __pyx_L8_bool_binop_done; - } - __pyx_t_8 = __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInput_IntegerList); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 350, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_4 = PyObject_RichCompare(__pyx_v_type_, __pyx_t_8, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 350, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(2, 350, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_10 = __pyx_t_11; - __pyx_L8_bool_binop_done:; - if (__pyx_t_10) { + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6101, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; - __pyx_t_14 = __Pyx_PyLong_As_int(__pyx_v_i); if (unlikely((__pyx_t_14 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 351, __pyx_L1_error) - __pyx_t_12 = __Pyx_PyLong_As_int(__pyx_v_value); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 351, __pyx_L1_error) - __pyx_t_15 = __pyx_f_5talib_7_ta_lib___ta_setOptInputParamInteger(__pyx_v_holder, __pyx_t_14, __pyx_t_12); if (unlikely(__pyx_t_15 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(2, 351, __pyx_L1_error) + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - } - __pyx_L5:; + __pyx_v_lookback = (__pyx_v_begidx + TA_TEMA_Lookback(__pyx_v_timeperiod)); - } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__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(4, 6104, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_15 = __pyx_f_5talib_7_ta_lib___ta_getLookback(__pyx_v_holder); if (unlikely(__pyx_t_15 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(2, 353, __pyx_L1_error) - __pyx_v_lookback = __pyx_t_15; + __pyx_v_retCode = TA_TEMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_15 = __pyx_f_5talib_7_ta_lib___ta_paramHolderFree(__pyx_v_holder); if (unlikely(__pyx_t_15 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(2, 354, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TEMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6106, __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_PyLong_From_int(__pyx_v_lookback); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 355, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; + __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_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_AddTraceback("talib._ta_lib.Function.lookback", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TEMA", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_local); - __Pyx_XDECREF(__pyx_v_i); - __Pyx_XDECREF(__pyx_v_opt_input); - __Pyx_XDECREF(__pyx_v_value); - __Pyx_XDECREF(__pyx_v_type_); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -43873,34 +45220,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_24lookback(CYTHON_UNUSED PyO /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_27output_names(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_389TRANGE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_26output_names, "Function.output_names(self)\n\nReturns a list of the output names returned by this function."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_27output_names = {"output_names", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_27output_names, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_26output_names}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_27output_names(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_388TRANGE, "TRANGE(ndarray high, ndarray low, ndarray close)\n\nTRANGE(high, low, close)\n\nTrue Range (Volatility Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_389TRANGE = {"TRANGE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_389TRANGE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_388TRANGE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_389TRANGE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("output_names (wrapper)", 0); + __Pyx_RefNannySetupContext("TRANGE (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -43910,116 +45259,154 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 357, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 6109, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 6109, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6109, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 357, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6109, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "output_names", 0) < (0)) __PYX_ERR(2, 357, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("output_names", 1, 1, 1, i); __PYX_ERR(2, 357, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TRANGE", 0) < (0)) __PYX_ERR(4, 6109, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TRANGE", 1, 3, 3, i); __PYX_ERR(4, 6109, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 357, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6109, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6109, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 6109, __pyx_L3_error) } - __pyx_v_self = values[0]; + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("output_names", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 357, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("TRANGE", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 6109, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.Function.output_names", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRANGE", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_26output_names(__pyx_self, __pyx_v_self); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 6111, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 6111, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 6111, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_388TRANGE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_26output_names(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { - PyObject *__pyx_v_ret = NULL; +static PyObject *__pyx_pf_5talib_7_ta_lib_388TRANGE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - size_t __pyx_t_5; - int __pyx_t_6; - int __pyx_t_7; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("output_names", 0); + __Pyx_RefNannySetupContext("TRANGE", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 362, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 362, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __pyx_t_4; - __Pyx_INCREF(__pyx_t_2); - __pyx_t_5 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_keys, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 362, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_v_ret = __pyx_t_1; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6128, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_6 = PyList_Check(__pyx_v_ret); - __pyx_t_7 = (!__pyx_t_6); - if (__pyx_t_7) { + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6129, __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 = PySequence_List(__pyx_v_ret); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 364, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_ret, __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(4, 6130, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - } + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 6131, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6132, __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(4, 6135, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRANGE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6137, __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_ret); - __pyx_r = __pyx_v_ret; + __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_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("talib._ta_lib.Function.output_names", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRANGE", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_ret); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -44027,34 +45414,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_26output_names(CYTHON_UNUSED /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_29outputs(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_391TRIMA(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_28outputs, "Function.outputs(self)\n\nReturns the TA function values for the currently set input_arrays and\nparameters. Returned values are a ndarray if there is only one output\nor a list of ndarrays for more than one output."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_29outputs = {"outputs", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_29outputs, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_28outputs}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_29outputs(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_390TRIMA, "TRIMA(ndarray real, int timeperiod=-0x80000000)\n\nTRIMA(real[, timeperiod=?])\n\nTriangular Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_391TRIMA = {"TRIMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_391TRIMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_390TRIMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_391TRIMA(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("outputs (wrapper)", 0); + __Pyx_RefNannySetupContext("TRIMA (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -44064,428 +45452,138 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 367, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 6140, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6140, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 367, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6140, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "outputs", 0) < (0)) __PYX_ERR(2, 367, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TRIMA", 0) < (0)) __PYX_ERR(4, 6140, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("outputs", 1, 1, 1, i); __PYX_ERR(2, 367, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TRIMA", 0, 1, 2, i); __PYX_ERR(4, 6140, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 367, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6140, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6140, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6142, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_self = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("outputs", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 367, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("TRIMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 6140, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.Function.outputs", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRIMA", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_28outputs(__pyx_self, __pyx_v_self); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 6142, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_390TRIMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_28outputs(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { - PyObject *__pyx_v_local = NULL; - PyObject *__pyx_v_ret = NULL; - PyObject *__pyx_v_index = NULL; +static PyObject *__pyx_pf_5talib_7_ta_lib_390TRIMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; - int __pyx_t_3; - PyObject *__pyx_t_4 = NULL; - size_t __pyx_t_5; - PyObject *__pyx_t_6 = NULL; - Py_ssize_t __pyx_t_7; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - PyObject *__pyx_t_10 = NULL; - PyObject *__pyx_t_11 = NULL; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("outputs", 0); + __Pyx_RefNannySetupContext("TRIMA", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 374, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6161, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_local = __pyx_t_1; + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs_valid); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 375, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 375, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = (!__pyx_t_2); - if (__pyx_t_3) { - - __pyx_t_4 = __pyx_v_self; - __Pyx_INCREF(__pyx_t_4); - __pyx_t_5 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__call_function, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 376, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - } + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6163, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 377, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_4 = __pyx_t_6; - __Pyx_INCREF(__pyx_t_4); - __pyx_t_5 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_values, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 377, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_v_ret = __pyx_t_1; - __pyx_t_1 = 0; + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_t_3 = PyList_Check(__pyx_v_ret); - __pyx_t_2 = (!__pyx_t_3); - if (__pyx_t_2) { + __pyx_v_lookback = (__pyx_v_begidx + TA_TRIMA_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = PySequence_List(__pyx_v_ret); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 379, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_ret, __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(4, 6166, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_PANDAS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 380, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6168, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = (__pyx_t_1 != Py_None); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (__pyx_t_3) { - } else { - __pyx_t_2 = __pyx_t_3; - goto __pyx_L6_bool_binop_done; - } - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 381, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_PANDAS_DATAFRAME); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 381, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_3 = PyObject_IsInstance(__pyx_t_1, __pyx_t_6); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 381, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_2 = __pyx_t_3; - __pyx_L6_bool_binop_done:; - - if (__pyx_t_2) { - - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 382, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_index); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 382, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_v_index = __pyx_t_1; - __pyx_t_1 = 0; - - __pyx_t_7 = PyObject_Length(__pyx_v_ret); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(2, 383, __pyx_L1_error) - __pyx_t_2 = (__pyx_t_7 == 1); - if (__pyx_t_2) { - - __Pyx_XDECREF(__pyx_r); - __pyx_t_6 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_PANDAS_SERIES); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 384, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_ret, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 384, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_5 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_6); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_5 = 0; - } - #endif - { - PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 1 : 0)] = {__pyx_t_6, __pyx_t_8}; - __pyx_t_9 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 384, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_index, __pyx_v_index, __pyx_t_9, __pyx_callargs+2, 0) < (0)) __PYX_ERR(2, 384, __pyx_L1_error) - __pyx_t_1 = __Pyx_Object_Vectorcall_CallFromBuilder((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_9); - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 384, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - } - - /*else*/ { - __Pyx_XDECREF(__pyx_r); - __pyx_t_4 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_PANDAS_DATAFRAME); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 386, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_6 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_numpy); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 386, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_column_stack); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 386, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_5 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_11))) { - __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_11); - assert(__pyx_t_6); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_11); - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_11, __pyx__function); - __pyx_t_5 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_v_ret}; - __pyx_t_8 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_11, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 386, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - } - - __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_output_names); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 388, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __pyx_t_5 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_9))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_9); - assert(__pyx_t_4); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_9); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_9, __pyx__function); - __pyx_t_5 = 0; - } - #endif - { - PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 2 : 0)] = {__pyx_t_4, __pyx_t_8}; - __pyx_t_6 = __Pyx_MakeVectorcallBuilderKwds(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 386, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_index, __pyx_v_index, __pyx_t_6, __pyx_callargs+2, 0) < (0)) __PYX_ERR(2, 386, __pyx_L1_error) - if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_columns, __pyx_t_11, __pyx_t_6, __pyx_callargs+2, 1) < (0)) __PYX_ERR(2, 386, __pyx_L1_error) - __pyx_t_1 = __Pyx_Object_Vectorcall_CallFromBuilder((PyObject*)__pyx_t_9, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_6); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 386, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - } - - } - - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 389, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = (__pyx_t_1 != Py_None); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (__pyx_t_3) { - } else { - __pyx_t_2 = __pyx_t_3; - goto __pyx_L9_bool_binop_done; - } - - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 390, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 390, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_3 = PyObject_IsInstance(__pyx_t_1, __pyx_t_9); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 390, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_2 = __pyx_t_3; - __pyx_L9_bool_binop_done:; - - if (__pyx_t_2) { - - __pyx_t_7 = PyObject_Length(__pyx_v_ret); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(2, 391, __pyx_L1_error) - __pyx_t_2 = (__pyx_t_7 == 1); - if (__pyx_t_2) { - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_POLARS_SERIES); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 392, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_11 = __Pyx_GetItemInt(__pyx_v_ret, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 392, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __pyx_t_5 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_6))) { - __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_6); - assert(__pyx_t_1); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); - __Pyx_INCREF(__pyx_t_1); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); - __pyx_t_5 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_t_11}; - __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 392, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - } - __pyx_r = __pyx_t_9; - __pyx_t_9 = 0; - goto __pyx_L0; - - } - - /*else*/ { - __Pyx_XDECREF(__pyx_r); - __pyx_t_6 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 394, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __pyx_t_8 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_numpy); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 394, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_column_stack); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 394, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_5 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_10))) { - __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_10); - assert(__pyx_t_8); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_10); - __Pyx_INCREF(__pyx_t_8); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_10, __pyx__function); - __pyx_t_5 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_v_ret}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_10, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 394, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - - __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_output_names); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 395, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __pyx_t_5 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_11))) { - __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_11); - assert(__pyx_t_6); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_11); - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_11, __pyx__function); - __pyx_t_5 = 0; - } - #endif - { - PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 1 : 0)] = {__pyx_t_6, __pyx_t_1}; - __pyx_t_8 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 394, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_schema, __pyx_t_10, __pyx_t_8, __pyx_callargs+2, 0) < (0)) __PYX_ERR(2, 394, __pyx_L1_error) - __pyx_t_9 = __Pyx_Object_Vectorcall_CallFromBuilder((PyObject*)__pyx_t_11, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_8); - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 394, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - } - __pyx_r = __pyx_t_9; - __pyx_t_9 = 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(2, 397, __pyx_L1_error) - __pyx_t_2 = (__pyx_t_7 == 1); - if (__pyx_t_2) { - __pyx_t_11 = __Pyx_GetItemInt(__pyx_v_ret, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 397, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __pyx_t_9 = __pyx_t_11; - __pyx_t_11 = 0; - } else { - __Pyx_INCREF(__pyx_v_ret); - __pyx_t_9 = __pyx_v_ret; - } - __pyx_r = __pyx_t_9; - __pyx_t_9 = 0; - goto __pyx_L0; - } + __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_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); - __Pyx_XDECREF(__pyx_t_10); - __Pyx_XDECREF(__pyx_t_11); - __Pyx_AddTraceback("talib._ta_lib.Function.outputs", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRIMA", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_local); - __Pyx_XDECREF(__pyx_v_ret); - __Pyx_XDECREF(__pyx_v_index); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -44493,24 +45591,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_28outputs(CYTHON_UNUSED PyOb /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_31run(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_393TRIX(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_30run, "Function.run(self, input_arrays=None)\n\nrun([input_arrays=None])\n\nThis is a shortcut to the outputs property that also allows setting\nthe input_arrays dict."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_31run = {"run", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_31run, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_30run}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_31run(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_392TRIX, "TRIX(ndarray real, int timeperiod=-0x80000000)\n\nTRIX(real[, timeperiod=?])\n\n1-day Rate-Of-Change (ROC) of a Triple Smooth EMA (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_393TRIX = {"TRIX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_393TRIX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_392TRIX}; +static PyObject *__pyx_pw_5talib_7_ta_lib_393TRIX(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; - PyObject *__pyx_v_input_arrays = 0; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -44521,7 +45619,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("run (wrapper)", 0); + __Pyx_RefNannySetupContext("TRIX (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -44531,124 +45629,138 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_input_arrays,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 399, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 6171, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 399, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6171, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 399, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6171, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "run", 0) < (0)) __PYX_ERR(2, 399, __pyx_L3_error) - if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_None)); + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TRIX", 0) < (0)) __PYX_ERR(4, 6171, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("run", 0, 1, 2, i); __PYX_ERR(2, 399, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TRIX", 0, 1, 2, i); __PYX_ERR(4, 6171, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 399, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6171, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 399, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6171, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } - if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_None)); } - __pyx_v_self = values[0]; - __pyx_v_input_arrays = values[1]; + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6173, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("run", 0, 1, 2, __pyx_nargs); __PYX_ERR(2, 399, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("TRIX", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 6171, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.Function.run", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRIX", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_30run(__pyx_self, __pyx_v_self, __pyx_v_input_arrays); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 6173, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_392TRIX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_30run(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_arrays) { +static PyObject *__pyx_pf_5talib_7_ta_lib_392TRIX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - int __pyx_t_1; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - size_t __pyx_t_4; + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("run", 0); + __Pyx_RefNannySetupContext("TRIX", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_input_arrays); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(2, 406, __pyx_L1_error) - if (__pyx_t_1) { + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6192, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_3 = __pyx_v_self; - __Pyx_INCREF(__pyx_t_3); - __pyx_t_4 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_input_arrays}; - __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_input_arrays, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 407, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - } + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6194, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; - __pyx_t_3 = __pyx_v_self; - __Pyx_INCREF(__pyx_t_3); - __pyx_t_4 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; - __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__call_function, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 408, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_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(4, 6197, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6199, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 409, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_r = __pyx_t_2; - __pyx_t_2 = 0; + __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_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.Function.run", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.TRIX", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -44656,36 +45768,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_30run(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_33__call__(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_395TSF(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_32__call__, "Function.__call__(self, *args, **kwargs)\n\nfunc_instance([input_arrays,] [parameter_args,] [input_price_series_kwargs,] [parameter_kwargs])\n\nThis is a shortcut to the outputs property that also allows setting\nthe input_arrays dict and function parameters."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_33__call__ = {"__call__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_33__call__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_32__call__}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_33__call__(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_394TSF, "TSF(ndarray real, int timeperiod=-0x80000000)\n\nTSF(real[, timeperiod=?])\n\nTime Series Forecast (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_395TSF = {"TSF", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_395TSF, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_394TSF}; +static PyObject *__pyx_pw_5talib_7_ta_lib_395TSF(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; - PyObject *__pyx_v_args = 0; - PyObject *__pyx_v_kwargs = 0; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__call__ (wrapper)", 0); + __Pyx_RefNannySetupContext("TSF (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -44694,909 +45805,524 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - __pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return NULL; - __Pyx_GOTREF(__pyx_v_kwargs); - __pyx_v_args = __Pyx_ArgsSlice_FASTCALL(__pyx_args, 1, __pyx_nargs); - if (unlikely(!__pyx_v_args)) { - __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0; - __Pyx_RefNannyFinishContext(); - return NULL; - } - __Pyx_GOTREF(__pyx_v_args); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 411, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 6202, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - default: + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6202, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 411, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6202, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; + default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - const Py_ssize_t used_pos_args = (kwd_pos_args < 1) ? kwd_pos_args : 1; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, __pyx_kwds_len, "__call__", 1) < (0)) __PYX_ERR(2, 411, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TSF", 0) < (0)) __PYX_ERR(4, 6202, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__call__", 0, 1, 1, i); __PYX_ERR(2, 411, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TSF", 0, 1, 2, i); __PYX_ERR(4, 6202, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs < 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 411, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6202, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6202, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6204, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_self = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__call__", 0, 1, 1, __pyx_nargs); __PYX_ERR(2, 411, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("TSF", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 6202, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_DECREF(__pyx_v_args); __pyx_v_args = 0; - __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0; - __Pyx_AddTraceback("talib._ta_lib.Function.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TSF", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_32__call__(__pyx_self, __pyx_v_self, __pyx_v_args, __pyx_v_kwargs); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 6204, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_394TSF(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_DECREF(__pyx_v_args); - __Pyx_DECREF(__pyx_v_kwargs); + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs) { - PyObject *__pyx_v_local = NULL; - PyObject *__pyx_v_opt_input_values = NULL; - PyObject *__pyx_v_price_series_name_values = NULL; - PyObject *__pyx_v_input_arrays = NULL; - PyObject *__pyx_v_input_price_series_names = NULL; - PyObject *__pyx_v_i = NULL; - PyObject *__pyx_v_arg = NULL; - PyObject *__pyx_v_msg = NULL; - PyObject *__pyx_v_no_existing_input_arrays = NULL; - PyObject *__pyx_v_param_name = NULL; - PyObject *__pyx_v_value = NULL; - PyObject *__pyx_v_input_name = NULL; - PyObject *__pyx_v_n = NULL; +static PyObject *__pyx_pf_5talib_7_ta_lib_394TSF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - size_t __pyx_t_5; - Py_ssize_t __pyx_t_6; - PyObject *(*__pyx_t_7)(PyObject *); - int __pyx_t_8; - int __pyx_t_9; - int __pyx_t_10; - PyObject *__pyx_t_11 = NULL; - PyObject *__pyx_t_12 = NULL; - PyObject *__pyx_t_13 = NULL; - int __pyx_t_14; - PyObject *__pyx_t_15 = NULL; - Py_ssize_t __pyx_t_16; - PyObject *__pyx_t_17 = NULL; - PyObject *__pyx_t_18 = NULL; - PyObject *__pyx_t_19[5]; - PyObject *__pyx_t_20 = NULL; - PyObject *(*__pyx_t_21)(PyObject *); + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__call__", 0); - __Pyx_INCREF(__pyx_v_args); + __Pyx_RefNannySetupContext("TSF", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 418, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_local = __pyx_t_1; + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 420, __pyx_L1_error) + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6225, __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(4, 6228, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 421, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = __pyx_t_4; - __Pyx_INCREF(__pyx_t_3); - __pyx_t_5 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; - __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_keys, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 421, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } - if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { - __pyx_t_4 = __pyx_t_2; __Pyx_INCREF(__pyx_t_4); - __pyx_t_6 = 0; - __pyx_t_7 = NULL; - } else { - __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 421, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_7 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 421, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - for (;;) { - if (likely(!__pyx_t_7)) { - if (likely(PyList_CheckExact(__pyx_t_4))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 421, __pyx_L1_error) - #endif - if (__pyx_t_6 >= __pyx_temp) break; - } - __pyx_t_2 = __Pyx_PyList_GetItemRefFast(__pyx_t_4, __pyx_t_6, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_6; - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_4); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 421, __pyx_L1_error) - #endif - if (__pyx_t_6 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_2 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6)); - #else - __pyx_t_2 = __Pyx_PySequence_ITEM(__pyx_t_4, __pyx_t_6); - #endif - ++__pyx_t_6; - } - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 421, __pyx_L1_error) - } else { - __pyx_t_2 = __pyx_t_7(__pyx_t_4); - if (unlikely(!__pyx_t_2)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 421, __pyx_L1_error) - PyErr_Clear(); - } - break; - } - } - __Pyx_GOTREF(__pyx_t_2); - __Pyx_XDECREF_SET(__pyx_v_param_name, __pyx_t_2); - __pyx_t_2 = 0; + __pyx_v_retCode = TA_TSF(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 420, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_param_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 420, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 420, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 420, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_INCREF(__pyx_v_param_name); - __Pyx_GIVEREF(__pyx_v_param_name); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_param_name) != (0)) __PYX_ERR(2, 420, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2) != (0)) __PYX_ERR(2, 420, __pyx_L1_error); - __pyx_t_2 = 0; - if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_3))) __PYX_ERR(2, 420, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSF, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6230, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_v_opt_input_values = ((PyObject*)__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; - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 422, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 423, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) { - __pyx_t_3 = __pyx_t_4; __Pyx_INCREF(__pyx_t_3); - __pyx_t_6 = 0; - __pyx_t_7 = NULL; - } else { - __pyx_t_6 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 423, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_7 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 423, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - for (;;) { - if (likely(!__pyx_t_7)) { - if (likely(PyList_CheckExact(__pyx_t_3))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 423, __pyx_L1_error) - #endif - if (__pyx_t_6 >= __pyx_temp) break; - } - __pyx_t_4 = __Pyx_PyList_GetItemRefFast(__pyx_t_3, __pyx_t_6, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_6; - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 423, __pyx_L1_error) - #endif - if (__pyx_t_6 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_6)); - #else - __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_6); - #endif - ++__pyx_t_6; + /* 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_397TSI(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_396TSI, "TSI(ndarray real, int firstperiod=-0x80000000, int secondperiod=-0x80000000)\n\nTSI(real[, firstperiod=?, secondperiod=?])\n\nTrue Strength Index (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n firstperiod: 25\n secondperiod: 13\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_397TSI = {"TSI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_397TSI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_396TSI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_397TSI(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_firstperiod; + int __pyx_v_secondperiod; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("TSI (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_firstperiod,&__pyx_mstate_global->__pyx_n_u_secondperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 6233, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 6233, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6233, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6233, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TSI", 0) < (0)) __PYX_ERR(4, 6233, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TSI", 0, 1, 3, i); __PYX_ERR(4, 6233, __pyx_L3_error) } } - if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 423, __pyx_L1_error) } else { - __pyx_t_4 = __pyx_t_7(__pyx_t_3); - if (unlikely(!__pyx_t_4)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 423, __pyx_L1_error) - PyErr_Clear(); - } + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 6233, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6233, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6233, __pyx_L3_error) break; + default: goto __pyx_L5_argtuple_error; } } - __Pyx_GOTREF(__pyx_t_4); - __Pyx_XDECREF_SET(__pyx_v_n, __pyx_t_4); - __pyx_t_4 = 0; - - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 422, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_n); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 422, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_price_series); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 422, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 422, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_INCREF(__pyx_v_n); - __Pyx_GIVEREF(__pyx_v_n); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_n) != (0)) __PYX_ERR(2, 422, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4) != (0)) __PYX_ERR(2, 422, __pyx_L1_error); - __pyx_t_4 = 0; - if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_2))) __PYX_ERR(2, 422, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_firstperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_firstperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6235, __pyx_L3_error) + } else { + __pyx_v_firstperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_secondperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_secondperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6235, __pyx_L3_error) + } else { + __pyx_v_secondperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("TSI", 0, 1, 3, __pyx_nargs); __PYX_ERR(4, 6233, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.TSI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 6235, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_396TSI(__pyx_self, __pyx_v_real, __pyx_v_firstperiod, __pyx_v_secondperiod); + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_v_price_series_name_values = ((PyObject*)__pyx_t_1); - __pyx_t_1 = 0; + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_396TSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_firstperiod, int __pyx_v_secondperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("TSI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = PySequence_List(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 426, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_args, __pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 427, __pyx_L1_error) + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6257, __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_TSI_Lookback(__pyx_v_firstperiod, __pyx_v_secondperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6260, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_input_arrays = ((PyObject*)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_v_self; - __Pyx_INCREF(__pyx_t_3); - __pyx_t_5 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__input_price_series_na, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 428, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_v_input_price_series_names = __pyx_t_1; - __pyx_t_1 = 0; + __pyx_v_retCode = TA_TSI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_firstperiod, __pyx_v_secondperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_args); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(2, 429, __pyx_L1_error) - if (__pyx_t_9) { - } else { - __pyx_t_8 = __pyx_t_9; - goto __pyx_L10_bool_binop_done; - } - __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_args, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 429, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 429, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_9 = PyObject_IsInstance(__pyx_t_1, __pyx_t_3); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(2, 429, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_10 = (!__pyx_t_9); - __pyx_t_8 = __pyx_t_10; - __pyx_L10_bool_binop_done:; - if (__pyx_t_8) { - __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); - __pyx_t_3 = __pyx_mstate_global->__pyx_int_0; - if (likely(PyList_CheckExact(__pyx_v_args)) || PyTuple_CheckExact(__pyx_v_args)) { - __pyx_t_1 = __pyx_v_args; __Pyx_INCREF(__pyx_t_1); - __pyx_t_6 = 0; - __pyx_t_7 = NULL; - } else { - __pyx_t_6 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 430, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 430, __pyx_L1_error) - } - for (;;) { - if (likely(!__pyx_t_7)) { - if (likely(PyList_CheckExact(__pyx_t_1))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 430, __pyx_L1_error) - #endif - if (__pyx_t_6 >= __pyx_temp) break; - } - __pyx_t_2 = __Pyx_PyList_GetItemRefFast(__pyx_t_1, __pyx_t_6, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_6; - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 430, __pyx_L1_error) - #endif - if (__pyx_t_6 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_2 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_6)); - #else - __pyx_t_2 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_6); - #endif - ++__pyx_t_6; - } - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 430, __pyx_L1_error) - } else { - __pyx_t_2 = __pyx_t_7(__pyx_t_1); - if (unlikely(!__pyx_t_2)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 430, __pyx_L1_error) - PyErr_Clear(); - } - break; - } - } - __Pyx_GOTREF(__pyx_t_2); - __Pyx_XDECREF_SET(__pyx_v_arg, __pyx_t_2); - __pyx_t_2 = 0; - __Pyx_INCREF(__pyx_t_3); - __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_3); - __pyx_t_2 = __Pyx_PyLong_AddObjC(__pyx_t_3, __pyx_mstate_global->__pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 430, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_3); - __pyx_t_3 = __pyx_t_2; - __pyx_t_2 = 0; + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + goto __pyx_L0; - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ARRAY_TYPES); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 431, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_8 = PyObject_IsInstance(__pyx_v_arg, __pyx_t_2); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(2, 431, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_10 = (!__pyx_t_8); - if (__pyx_t_10) { - goto __pyx_L13_break; + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.TSI", __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_399TYPPRICE(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_398TYPPRICE, "TYPPRICE(ndarray high, ndarray low, ndarray close)\n\nTYPPRICE(high, low, close)\n\nTypical Price (Price Transform)\n\nInputs:\n prices: ['high', 'low', 'close']\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_399TYPPRICE = {"TYPPRICE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_399TYPPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_398TYPPRICE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_399TYPPRICE(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("TYPPRICE (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 6265, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 6265, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6265, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6265, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TYPPRICE", 0) < (0)) __PYX_ERR(4, 6265, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TYPPRICE", 1, 3, 3, i); __PYX_ERR(4, 6265, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6265, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6265, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 6265, __pyx_L3_error) + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("TYPPRICE", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 6265, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.TYPPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 6267, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 6267, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 6267, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_398TYPPRICE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close); - { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13); - __Pyx_XGOTREF(__pyx_t_11); - __Pyx_XGOTREF(__pyx_t_12); - __Pyx_XGOTREF(__pyx_t_13); - /*try:*/ { + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} - __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_input_price_series_names, __pyx_v_i); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 435, __pyx_L15_error) - __Pyx_GOTREF(__pyx_t_2); - if (unlikely((PyDict_SetItem(__pyx_v_input_arrays, __pyx_t_2, __pyx_v_arg) < 0))) __PYX_ERR(2, 435, __pyx_L15_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_398TYPPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + 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_XDECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; - __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; - goto __pyx_L22_try_end; - __pyx_L15_error:; - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6284, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_14 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_IndexError)))); - if (__pyx_t_14) { - __Pyx_AddTraceback("talib._ta_lib.Function.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_4, &__pyx_t_15) < 0) __PYX_ERR(2, 436, __pyx_L17_except_error) - __Pyx_XGOTREF(__pyx_t_2); - __Pyx_XGOTREF(__pyx_t_4); - __Pyx_XGOTREF(__pyx_t_15); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6285, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_16 = PyObject_Length(__pyx_v_input_price_series_names); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(2, 438, __pyx_L17_except_error) - __pyx_t_17 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_t_16, 0, ' ', 'd'); if (unlikely(!__pyx_t_17)) __PYX_ERR(2, 438, __pyx_L17_except_error) - __Pyx_GOTREF(__pyx_t_17); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6286, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_18 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__3, __pyx_v_input_price_series_names); if (unlikely(!__pyx_t_18)) __PYX_ERR(2, 439, __pyx_L17_except_error) - __Pyx_GOTREF(__pyx_t_18); - __pyx_t_19[0] = __pyx_mstate_global->__pyx_kp_u_Too_many_price_arguments_expecte; - __pyx_t_19[1] = __pyx_t_17; - __pyx_t_19[2] = __pyx_mstate_global->__pyx_kp_u__4; - __pyx_t_19[3] = __pyx_t_18; - __pyx_t_19[4] = __pyx_mstate_global->__pyx_kp_u__5; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 6287, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - __pyx_t_20 = __Pyx_PyUnicode_Join(__pyx_t_19, 5, 35 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_17) + 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_18) + 1, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_18)); - if (unlikely(!__pyx_t_20)) __PYX_ERR(2, 437, __pyx_L17_except_error) - __Pyx_GOTREF(__pyx_t_20); - __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - __pyx_v_msg = ((PyObject*)__pyx_t_20); - __pyx_t_20 = 0; + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6288, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; - __pyx_t_18 = NULL; - __pyx_t_5 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_18, __pyx_v_msg}; - __pyx_t_20 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_TypeError)), __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; - if (unlikely(!__pyx_t_20)) __PYX_ERR(2, 440, __pyx_L17_except_error) - __Pyx_GOTREF(__pyx_t_20); - } - __Pyx_Raise(__pyx_t_20, 0, 0, 0); - __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; - __PYX_ERR(2, 440, __pyx_L17_except_error) - } - goto __pyx_L17_except_error; + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_L17_except_error:; - __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_XGIVEREF(__pyx_t_13); - __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13); - goto __pyx_L1_error; - __pyx_L22_try_end:; - } + __pyx_v_lookback = (__pyx_v_begidx + TA_TYPPRICE_Lookback()); - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - goto __pyx_L25_for_end; - __pyx_L13_break:; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - goto __pyx_L25_for_end; - __pyx_L25_for_end:; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - } - - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_PANDAS_DATAFRAME); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 442, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_8 = (__pyx_t_3 != Py_None); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (__pyx_t_8) { - } else { - __pyx_t_10 = __pyx_t_8; - goto __pyx_L27_bool_binop_done; - } - - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 443, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_PANDAS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 443, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_8 = PyObject_IsInstance(__pyx_t_3, __pyx_t_1); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(2, 443, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_10 = __pyx_t_8; - __pyx_L27_bool_binop_done:; - - if (__pyx_t_10) { - - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 444, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 444, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_no_existing_input_arrays = __pyx_t_3; - __pyx_t_3 = 0; - - goto __pyx_L26; - } - - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 445, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_8 = (__pyx_t_3 != Py_None); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (__pyx_t_8) { - } else { - __pyx_t_10 = __pyx_t_8; - goto __pyx_L29_bool_binop_done; - } - - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 446, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 446, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_8 = PyObject_IsInstance(__pyx_t_3, __pyx_t_1); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(2, 446, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_10 = __pyx_t_8; - __pyx_L29_bool_binop_done:; - - if (__pyx_t_10) { - - __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 447, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __pyx_t_3 = __pyx_t_15; - __Pyx_INCREF(__pyx_t_3); - __pyx_t_5 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_is_empty, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 447, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_v_no_existing_input_arrays = __pyx_t_1; - __pyx_t_1 = 0; - - goto __pyx_L26; - } - - /*else*/ { - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 449, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(2, 449, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyBool_FromLong((!(!(!__pyx_t_10)))); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 449, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_no_existing_input_arrays = __pyx_t_1; - __pyx_t_1 = 0; - } - __pyx_L26:; - - __pyx_t_6 = PyDict_Size(__pyx_v_input_arrays); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(2, 451, __pyx_L1_error) - __pyx_t_16 = PyObject_Length(__pyx_v_input_price_series_names); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(2, 451, __pyx_L1_error) - __pyx_t_10 = (__pyx_t_6 == __pyx_t_16); - if (__pyx_t_10) { - - __pyx_t_15 = __pyx_v_self; - __Pyx_INCREF(__pyx_t_15); - __pyx_t_5 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_15, __pyx_v_input_arrays}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_input_arrays, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 452, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_16 = PyDict_Size(__pyx_v_input_arrays); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(2, 453, __pyx_L1_error) - __pyx_t_1 = __Pyx_PyList_GetSlice(__pyx_v_args, __pyx_t_16, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 453, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_args, __pyx_t_1); - __pyx_t_1 = 0; - - goto __pyx_L31; - } - - __pyx_t_16 = PyDict_Size(__pyx_v_input_arrays); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(2, 454, __pyx_L1_error) - __pyx_t_8 = (__pyx_t_16 != 0); - if (!__pyx_t_8) { - } else { - __pyx_t_10 = __pyx_t_8; - goto __pyx_L32_bool_binop_done; - } - __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_v_no_existing_input_arrays); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(2, 454, __pyx_L1_error) - if (__pyx_t_8) { - } else { - __pyx_t_10 = __pyx_t_8; - goto __pyx_L32_bool_binop_done; - } - - __pyx_t_16 = PyObject_Length(__pyx_v_args); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(2, 455, __pyx_L1_error) - __pyx_t_8 = (!(__pyx_t_16 != 0)); - if (!__pyx_t_8) { - } else { - __pyx_t_10 = __pyx_t_8; - goto __pyx_L32_bool_binop_done; - } - __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_args, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 455, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6291, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_mstate_global->__pyx_n_u_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 455, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __pyx_t_8 = PyObject_IsInstance(__pyx_t_1, __pyx_t_15); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(2, 455, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - __pyx_t_9 = (!__pyx_t_8); - __pyx_t_10 = __pyx_t_9; - __pyx_L32_bool_binop_done:; - - if (unlikely(__pyx_t_10)) { - - __pyx_t_16 = PyObject_Length(__pyx_v_input_price_series_names); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(2, 457, __pyx_L1_error) - __pyx_t_15 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_t_16, 0, ' ', 'd'); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 457, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - - __pyx_t_1 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__3, __pyx_v_input_price_series_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 458, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_19[0] = __pyx_mstate_global->__pyx_kp_u_Not_enough_price_arguments_expec; - __pyx_t_19[1] = __pyx_t_15; - __pyx_t_19[2] = __pyx_mstate_global->__pyx_kp_u__4; - __pyx_t_19[3] = __pyx_t_1; - __pyx_t_19[4] = __pyx_mstate_global->__pyx_kp_u__5; - - __pyx_t_3 = __Pyx_PyUnicode_Join(__pyx_t_19, 5, 37 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_15) + 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 1, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1)); - if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 456, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_msg = ((PyObject*)__pyx_t_3); - __pyx_t_3 = 0; - - __pyx_t_1 = NULL; - __pyx_t_5 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_v_msg}; - __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_TypeError)), __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 459, __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, 459, __pyx_L1_error) + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - } - __pyx_L31:; + __pyx_v_retCode = TA_TYPPRICE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_set_function_args); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 461, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_1 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 461, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TYPPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6293, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_15 = PyDict_Copy(__pyx_v_kwargs); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 461, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_1, __pyx_t_15); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 461, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - __pyx_t_15 = __pyx_v_self; - __Pyx_INCREF(__pyx_t_15); - __pyx_t_5 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_15, NULL}; - __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__call_function, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 462, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - __pyx_t_4 = __pyx_v_opt_input_values; __Pyx_INCREF(__pyx_t_4); - __pyx_t_16 = 0; - for (;;) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 465, __pyx_L1_error) - #endif - if (__pyx_t_16 >= __pyx_temp) break; - } - __pyx_t_15 = __Pyx_PyList_GetItemRefFast(__pyx_t_4, __pyx_t_16, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_16; - if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 465, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - if ((likely(PyTuple_CheckExact(__pyx_t_15))) || (PyList_CheckExact(__pyx_t_15))) { - PyObject* sequence = __pyx_t_15; - Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); - if (unlikely(size != 2)) { - if (size > 2) __Pyx_RaiseTooManyValuesError(2); - else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(2, 465, __pyx_L1_error) - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - if (likely(PyTuple_CheckExact(sequence))) { - __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); - __Pyx_INCREF(__pyx_t_1); - __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); - __Pyx_INCREF(__pyx_t_3); - } else { - __pyx_t_1 = __Pyx_PyList_GetItemRefFast(sequence, 0, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 465, __pyx_L1_error) - __Pyx_XGOTREF(__pyx_t_1); - __pyx_t_3 = __Pyx_PyList_GetItemRefFast(sequence, 1, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 465, __pyx_L1_error) - __Pyx_XGOTREF(__pyx_t_3); - } - #else - __pyx_t_1 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 465, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 465, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - #endif - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - } else { - Py_ssize_t index = -1; - __pyx_t_2 = PyObject_GetIter(__pyx_t_15); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 465, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - __pyx_t_21 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); - index = 0; __pyx_t_1 = __pyx_t_21(__pyx_t_2); if (unlikely(!__pyx_t_1)) goto __pyx_L38_unpacking_failed; - __Pyx_GOTREF(__pyx_t_1); - index = 1; __pyx_t_3 = __pyx_t_21(__pyx_t_2); if (unlikely(!__pyx_t_3)) goto __pyx_L38_unpacking_failed; - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_21(__pyx_t_2), 2) < (0)) __PYX_ERR(2, 465, __pyx_L1_error) - __pyx_t_21 = NULL; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - goto __pyx_L39_unpacking_done; - __pyx_L38_unpacking_failed:; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_21 = NULL; - if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(2, 465, __pyx_L1_error) - __pyx_L39_unpacking_done:; - } - __Pyx_XDECREF_SET(__pyx_v_param_name, __pyx_t_1); - __pyx_t_1 = 0; - __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_3); - __pyx_t_3 = 0; - - __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 466, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_param_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 466, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (unlikely((PyObject_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_value, __pyx_v_value) < 0))) __PYX_ERR(2, 466, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_parameters); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 467, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 467, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (unlikely((PyObject_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_parameters, __pyx_t_4) < 0))) __PYX_ERR(2, 467, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - __pyx_t_4 = __pyx_v_price_series_name_values; __Pyx_INCREF(__pyx_t_4); - __pyx_t_16 = 0; - for (;;) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 470, __pyx_L1_error) - #endif - if (__pyx_t_16 >= __pyx_temp) break; - } - __pyx_t_3 = __Pyx_PyList_GetItemRefFast(__pyx_t_4, __pyx_t_16, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_16; - if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 470, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) { - PyObject* sequence = __pyx_t_3; - Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); - if (unlikely(size != 2)) { - if (size > 2) __Pyx_RaiseTooManyValuesError(2); - else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(2, 470, __pyx_L1_error) - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - if (likely(PyTuple_CheckExact(sequence))) { - __pyx_t_15 = PyTuple_GET_ITEM(sequence, 0); - __Pyx_INCREF(__pyx_t_15); - __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); - __Pyx_INCREF(__pyx_t_1); - } else { - __pyx_t_15 = __Pyx_PyList_GetItemRefFast(sequence, 0, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 470, __pyx_L1_error) - __Pyx_XGOTREF(__pyx_t_15); - __pyx_t_1 = __Pyx_PyList_GetItemRefFast(sequence, 1, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 470, __pyx_L1_error) - __Pyx_XGOTREF(__pyx_t_1); - } - #else - __pyx_t_15 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 470, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __pyx_t_1 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 470, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - #endif - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - } else { - Py_ssize_t index = -1; - __pyx_t_2 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 470, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_21 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); - index = 0; __pyx_t_15 = __pyx_t_21(__pyx_t_2); if (unlikely(!__pyx_t_15)) goto __pyx_L43_unpacking_failed; - __Pyx_GOTREF(__pyx_t_15); - index = 1; __pyx_t_1 = __pyx_t_21(__pyx_t_2); if (unlikely(!__pyx_t_1)) goto __pyx_L43_unpacking_failed; - __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_21(__pyx_t_2), 2) < (0)) __PYX_ERR(2, 470, __pyx_L1_error) - __pyx_t_21 = NULL; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - goto __pyx_L44_unpacking_done; - __pyx_L43_unpacking_failed:; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_21 = NULL; - if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(2, 470, __pyx_L1_error) - __pyx_L44_unpacking_done:; - } - __Pyx_XDECREF_SET(__pyx_v_input_name, __pyx_t_15); - __pyx_t_15 = 0; - __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 471, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_input_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 471, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely((PyObject_SetItem(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_price_series, __pyx_v_value) < 0))) __PYX_ERR(2, 471, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 472, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 472, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely((PyObject_SetItem(__pyx_t_3, __pyx_v_input_name, __pyx_v_value) < 0))) __PYX_ERR(2, 472, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_r); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 474, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_r = __pyx_t_4; - __pyx_t_4 = 0; + __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_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_15); - __Pyx_XDECREF(__pyx_t_17); - __Pyx_XDECREF(__pyx_t_18); - __Pyx_XDECREF(__pyx_t_20); - __Pyx_AddTraceback("talib._ta_lib.Function.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TYPPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_args); - __Pyx_XDECREF(__pyx_v_local); - __Pyx_XDECREF(__pyx_v_opt_input_values); - __Pyx_XDECREF(__pyx_v_price_series_name_values); - __Pyx_XDECREF(__pyx_v_input_arrays); - __Pyx_XDECREF(__pyx_v_input_price_series_names); - __Pyx_XDECREF(__pyx_v_i); - __Pyx_XDECREF(__pyx_v_arg); - __Pyx_XDECREF(__pyx_v_msg); - __Pyx_XDECREF(__pyx_v_no_existing_input_arrays); - __Pyx_XDECREF(__pyx_v_param_name); - __Pyx_XDECREF(__pyx_v_value); - __Pyx_XDECREF(__pyx_v_input_name); - __Pyx_XDECREF(__pyx_v_n); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -45604,34 +46330,39 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyO /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_35__input_price_series_names(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_401ULTOSC(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_34__input_price_series_names, "Function.__input_price_series_names(self)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_35__input_price_series_names = {"__input_price_series_names", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_35__input_price_series_names, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_34__input_price_series_names}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_35__input_price_series_names(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_400ULTOSC, "ULTOSC(ndarray high, ndarray low, ndarray close, int timeperiod1=-0x80000000, int timeperiod2=-0x80000000, int timeperiod3=-0x80000000)\n\nULTOSC(high, low, close[, timeperiod1=?, timeperiod2=?, timeperiod3=?])\n\nUltimate Oscillator (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n timeperiod1: 7\n timeperiod2: 14\n timeperiod3: 28\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_401ULTOSC = {"ULTOSC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_401ULTOSC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_400ULTOSC}; +static PyObject *__pyx_pw_5talib_7_ta_lib_401ULTOSC(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod1; + int __pyx_v_timeperiod2; + int __pyx_v_timeperiod3; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[6] = {0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__input_price_series_names (wrapper)", 0); + __Pyx_RefNannySetupContext("ULTOSC (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -45641,242 +46372,387 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod1,&__pyx_mstate_global->__pyx_n_u_timeperiod2,&__pyx_mstate_global->__pyx_n_u_timeperiod3,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 477, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 6296, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 6296, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 6296, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 6296, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 6296, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6296, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 477, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6296, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__input_price_series_names", 0) < (0)) __PYX_ERR(2, 477, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__input_price_series_names", 1, 1, 1, i); __PYX_ERR(2, 477, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ULTOSC", 0) < (0)) __PYX_ERR(4, 6296, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ULTOSC", 0, 3, 6, i); __PYX_ERR(4, 6296, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 477, __pyx_L3_error) + switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 6296, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 6296, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 6296, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 6296, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6296, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6296, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_timeperiod1 = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6298, __pyx_L3_error) + } else { + __pyx_v_timeperiod1 = ((int)((int)-2147483648)); + } + if (values[4]) { + __pyx_v_timeperiod2 = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6298, __pyx_L3_error) + } else { + __pyx_v_timeperiod2 = ((int)((int)-2147483648)); + } + if (values[5]) { + __pyx_v_timeperiod3 = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_timeperiod3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6298, __pyx_L3_error) + } else { + __pyx_v_timeperiod3 = ((int)((int)-2147483648)); } - __pyx_v_self = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__input_price_series_names", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 477, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("ULTOSC", 0, 3, 6, __pyx_nargs); __PYX_ERR(4, 6296, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.Function.__input_price_series_names", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ULTOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_34__input_price_series_names(__pyx_self, __pyx_v_self); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 6298, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 6298, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 6298, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_400ULTOSC(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_34__input_price_series_names(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { - PyObject *__pyx_v_local = NULL; - PyObject *__pyx_v_input_price_series_names = NULL; - PyObject *__pyx_v_input_name = NULL; - PyObject *__pyx_v_price_series = NULL; - PyObject *__pyx_v_name = NULL; +static PyObject *__pyx_pf_5talib_7_ta_lib_400ULTOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod1, int __pyx_v_timeperiod2, int __pyx_v_timeperiod3) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - Py_ssize_t __pyx_t_3; - PyObject *(*__pyx_t_4)(PyObject *); - PyObject *__pyx_t_5 = NULL; - int __pyx_t_6; - Py_ssize_t __pyx_t_7; - PyObject *(*__pyx_t_8)(PyObject *); - int __pyx_t_9; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__input_price_series_names", 0); + __Pyx_RefNannySetupContext("ULTOSC", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 478, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6319, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_local = __pyx_t_1; + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 479, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6320, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_input_price_series_names = ((PyObject*)__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 480, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6321, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 6322, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6323, __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(4, 6326, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ULTOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6328, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { - __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); - __pyx_t_3 = 0; - __pyx_t_4 = NULL; - } else { - __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 480, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 480, __pyx_L1_error) - } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - for (;;) { - if (likely(!__pyx_t_4)) { - if (likely(PyList_CheckExact(__pyx_t_2))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 480, __pyx_L1_error) - #endif - if (__pyx_t_3 >= __pyx_temp) break; - } - __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_2, __pyx_t_3, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_3; - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 480, __pyx_L1_error) - #endif - if (__pyx_t_3 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3)); - #else - __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_3); - #endif - ++__pyx_t_3; + + __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_403VAR(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_402VAR, "VAR(ndarray real, int timeperiod=-0x80000000, double nbdev=-4e37)\n\nVAR(real[, timeperiod=?, nbdev=?])\n\nVariance (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 5\n nbdev: 1.0\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_403VAR = {"VAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_403VAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_402VAR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_403VAR(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + double __pyx_v_nbdev; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("VAR (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 6331, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 6331, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6331, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6331, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "VAR", 0) < (0)) __PYX_ERR(4, 6331, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("VAR", 0, 1, 3, i); __PYX_ERR(4, 6331, __pyx_L3_error) } } - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 480, __pyx_L1_error) } else { - __pyx_t_1 = __pyx_t_4(__pyx_t_2); - if (unlikely(!__pyx_t_1)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 480, __pyx_L1_error) - PyErr_Clear(); - } + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 6331, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6331, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6331, __pyx_L3_error) break; + default: goto __pyx_L5_argtuple_error; } } - __Pyx_GOTREF(__pyx_t_1); - __Pyx_XDECREF_SET(__pyx_v_input_name, __pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6333, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 6333, __pyx_L3_error) + } else { + __pyx_v_nbdev = ((double)((double)-4e37)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("VAR", 0, 1, 3, __pyx_nargs); __PYX_ERR(4, 6331, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.VAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 6333, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_402VAR(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdev); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 481, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_input_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 481, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_price_series); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 481, __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; + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} - __pyx_t_6 = PyList_Check(__pyx_v_price_series); - if (__pyx_t_6) { +static PyObject *__pyx_pf_5talib_7_ta_lib_402VAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev) { + 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); - if (likely(PyList_CheckExact(__pyx_v_price_series)) || PyTuple_CheckExact(__pyx_v_price_series)) { - __pyx_t_1 = __pyx_v_price_series; __Pyx_INCREF(__pyx_t_1); - __pyx_t_7 = 0; - __pyx_t_8 = NULL; - } else { - __pyx_t_7 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_price_series); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 483, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_8 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 483, __pyx_L1_error) - } - for (;;) { - if (likely(!__pyx_t_8)) { - if (likely(PyList_CheckExact(__pyx_t_1))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 483, __pyx_L1_error) - #endif - if (__pyx_t_7 >= __pyx_temp) break; - } - __pyx_t_5 = __Pyx_PyList_GetItemRefFast(__pyx_t_1, __pyx_t_7, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_7; - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 483, __pyx_L1_error) - #endif - if (__pyx_t_7 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_5 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_7)); - #else - __pyx_t_5 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_7); - #endif - ++__pyx_t_7; - } - if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 483, __pyx_L1_error) - } else { - __pyx_t_5 = __pyx_t_8(__pyx_t_1); - if (unlikely(!__pyx_t_5)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 483, __pyx_L1_error) - PyErr_Clear(); - } - break; - } - } - __Pyx_GOTREF(__pyx_t_5); - __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_5); - __pyx_t_5 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6353, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_input_price_series_names, __pyx_v_name); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(2, 484, __pyx_L1_error) + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6355, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; - goto __pyx_L5; - } + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - /*else*/ { - __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_input_price_series_names, __pyx_v_price_series); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(2, 486, __pyx_L1_error) - } - __pyx_L5:; + __pyx_v_lookback = (__pyx_v_begidx + TA_VAR_Lookback(__pyx_v_timeperiod, __pyx_v_nbdev)); - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6358, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_nbdev, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6360, __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_input_price_series_names); - __pyx_r = __pyx_v_input_price_series_names; + __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_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.Function.__input_price_series_names", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VAR", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_local); - __Pyx_XDECREF(__pyx_v_input_price_series_names); - __Pyx_XDECREF(__pyx_v_input_name); - __Pyx_XDECREF(__pyx_v_price_series); - __Pyx_XDECREF(__pyx_v_name); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -45884,34 +46760,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_34__input_price_series_names /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_37__call_function(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_405VHF(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_36__call_function, "Function.__call_function(self)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_37__call_function = {"__call_function", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_37__call_function, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_36__call_function}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_37__call_function(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_404VHF, "VHF(ndarray real, int timeperiod=-0x80000000)\n\nVHF(real[, timeperiod=?])\n\nVertical Horizontal Filter (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 28\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_405VHF = {"VHF", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_405VHF, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_404VHF}; +static PyObject *__pyx_pw_5talib_7_ta_lib_405VHF(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__call_function (wrapper)", 0); + __Pyx_RefNannySetupContext("VHF (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -45921,486 +46798,364 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 489, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 6363, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6363, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 489, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6363, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__call_function", 0) < (0)) __PYX_ERR(2, 489, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "VHF", 0) < (0)) __PYX_ERR(4, 6363, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__call_function", 1, 1, 1, i); __PYX_ERR(2, 489, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("VHF", 0, 1, 2, i); __PYX_ERR(4, 6363, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 489, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6363, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6363, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6365, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_self = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__call_function", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 489, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("VHF", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 6363, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.Function.__call_function", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VHF", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_36__call_function(__pyx_self, __pyx_v_self); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 6365, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_404VHF(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_36__call_function(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { - PyObject *__pyx_v_local = NULL; - PyObject *__pyx_v_input_price_series_names = NULL; - PyObject *__pyx_v_args = NULL; - PyObject *__pyx_v_price_series = NULL; - PyObject *__pyx_v_series = NULL; - PyObject *__pyx_v_opt_input = NULL; - PyObject *__pyx_v_value = NULL; - PyObject *__pyx_v_results = NULL; - PyObject *__pyx_v_keys = NULL; - PyObject *__pyx_v_i = NULL; - PyObject *__pyx_v_output = NULL; +static PyObject *__pyx_pf_5talib_7_ta_lib_404VHF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - size_t __pyx_t_3; - Py_ssize_t __pyx_t_4; - PyObject *(*__pyx_t_5)(PyObject *); - PyObject *__pyx_t_6 = NULL; - int __pyx_t_7; - int __pyx_t_8; - PyObject *__pyx_t_9 = NULL; - PyObject *__pyx_t_10 = NULL; - int __pyx_t_11; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__call_function", 0); + __Pyx_RefNannySetupContext("VHF", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 490, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6384, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_local = __pyx_t_1; + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_v_self; - __Pyx_INCREF(__pyx_t_2); - __pyx_t_3 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__input_price_series_na, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 491, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_v_input_price_series_names = __pyx_t_1; - __pyx_t_1 = 0; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6386, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 494, __pyx_L1_error) + __pyx_v_lookback = (__pyx_v_begidx + TA_VHF_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(4, 6389, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_args = ((PyObject*)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - if (likely(PyList_CheckExact(__pyx_v_input_price_series_names)) || PyTuple_CheckExact(__pyx_v_input_price_series_names)) { - __pyx_t_1 = __pyx_v_input_price_series_names; __Pyx_INCREF(__pyx_t_1); - __pyx_t_4 = 0; - __pyx_t_5 = NULL; - } else { - __pyx_t_4 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_input_price_series_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 495, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 495, __pyx_L1_error) - } - for (;;) { - if (likely(!__pyx_t_5)) { - if (likely(PyList_CheckExact(__pyx_t_1))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 495, __pyx_L1_error) - #endif - if (__pyx_t_4 >= __pyx_temp) break; - } - __pyx_t_2 = __Pyx_PyList_GetItemRefFast(__pyx_t_1, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_4; - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 495, __pyx_L1_error) - #endif - if (__pyx_t_4 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_2 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4)); - #else - __pyx_t_2 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_4); - #endif - ++__pyx_t_4; + __pyx_v_retCode = TA_VHF(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VHF, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6391, __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.VHF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_407VORTEX(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_406VORTEX, "VORTEX(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nVORTEX(high, low, close[, timeperiod=?])\n\nVortex Indicator (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n timeperiod: 14\nOutputs:\n plusvi\n minusvi"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_407VORTEX = {"VORTEX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_407VORTEX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_406VORTEX}; +static PyObject *__pyx_pw_5talib_7_ta_lib_407VORTEX(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("VORTEX (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 6394, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 6394, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 6394, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6394, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6394, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "VORTEX", 0) < (0)) __PYX_ERR(4, 6394, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("VORTEX", 0, 3, 4, i); __PYX_ERR(4, 6394, __pyx_L3_error) } } - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 495, __pyx_L1_error) } else { - __pyx_t_2 = __pyx_t_5(__pyx_t_1); - if (unlikely(!__pyx_t_2)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 495, __pyx_L1_error) - PyErr_Clear(); - } + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 6394, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 6394, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6394, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6394, __pyx_L3_error) break; + default: goto __pyx_L5_argtuple_error; } } - __Pyx_GOTREF(__pyx_t_2); - __Pyx_XDECREF_SET(__pyx_v_price_series, __pyx_t_2); - __pyx_t_2 = 0; - - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 496, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_price_series); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 496, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_XDECREF_SET(__pyx_v_series, __pyx_t_6); - __pyx_t_6 = 0; - - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_PANDAS_SERIES); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 497, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_8 = (__pyx_t_6 != Py_None); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (__pyx_t_8) { + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6396, __pyx_L3_error) } else { - __pyx_t_7 = __pyx_t_8; - goto __pyx_L6_bool_binop_done; + __pyx_v_timeperiod = ((int)((int)-2147483648)); } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("VORTEX", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 6394, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.VORTEX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 6396, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 6396, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 6396, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_406VORTEX(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_PANDAS_SERIES); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 498, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_8 = PyObject_IsInstance(__pyx_v_series, __pyx_t_6); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(2, 498, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_7 = __pyx_t_8; - __pyx_L6_bool_binop_done:; - - if (__pyx_t_7) { - - __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_series, __pyx_mstate_global->__pyx_n_u_values); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 499, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_2 = __pyx_t_9; - __Pyx_INCREF(__pyx_t_2); - __pyx_t_3 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)(&PyFloat_Type))}; - __pyx_t_6 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_astype, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 499, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - } - __Pyx_DECREF_SET(__pyx_v_series, __pyx_t_6); - __pyx_t_6 = 0; - - goto __pyx_L5; - } - - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_POLARS_SERIES); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 500, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_8 = (__pyx_t_6 != Py_None); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (__pyx_t_8) { - } else { - __pyx_t_7 = __pyx_t_8; - goto __pyx_L8_bool_binop_done; - } - - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_POLARS_SERIES); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 501, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_8 = PyObject_IsInstance(__pyx_v_series, __pyx_t_6); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(2, 501, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_7 = __pyx_t_8; - __pyx_L8_bool_binop_done:; - - if (__pyx_t_7) { - - __pyx_t_10 = __pyx_v_series; - __Pyx_INCREF(__pyx_t_10); - __pyx_t_3 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_10, NULL}; - __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_to_numpy, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 502, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } - __pyx_t_9 = __pyx_t_2; - __Pyx_INCREF(__pyx_t_9); - __pyx_t_3 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_9, ((PyObject *)(&PyFloat_Type))}; - __pyx_t_6 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_astype, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 502, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - } - __Pyx_DECREF_SET(__pyx_v_series, __pyx_t_6); - __pyx_t_6 = 0; - - } - __pyx_L5:; - - __pyx_t_11 = __Pyx_PyList_Append(__pyx_v_args, __pyx_v_series); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(2, 503, __pyx_L1_error) - + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 504, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { - __pyx_t_6 = __pyx_t_1; __Pyx_INCREF(__pyx_t_6); - __pyx_t_4 = 0; - __pyx_t_5 = NULL; - } else { - __pyx_t_4 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 504, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 504, __pyx_L1_error) + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - for (;;) { - if (likely(!__pyx_t_5)) { - if (likely(PyList_CheckExact(__pyx_t_6))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_6); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 504, __pyx_L1_error) - #endif - if (__pyx_t_4 >= __pyx_temp) break; - } - __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_6, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_4; - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_6); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 504, __pyx_L1_error) - #endif - if (__pyx_t_4 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_4)); - #else - __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_6, __pyx_t_4); - #endif - ++__pyx_t_4; - } - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 504, __pyx_L1_error) - } else { - __pyx_t_1 = __pyx_t_5(__pyx_t_6); - if (unlikely(!__pyx_t_1)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 504, __pyx_L1_error) - PyErr_Clear(); - } - break; - } - } - __Pyx_GOTREF(__pyx_t_1); - __Pyx_XDECREF_SET(__pyx_v_opt_input, __pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_v_self; - __Pyx_INCREF(__pyx_t_2); - __pyx_t_3 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_opt_input}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__get_opt_input_value, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 505, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_11 = __Pyx_PyList_Append(__pyx_v_args, __pyx_v_value); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(2, 506, __pyx_L1_error) + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} - } - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_406VORTEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outplusvi = 0; + PyArrayObject *__pyx_v_outminusvi = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + 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("VORTEX", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_func_object); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 509, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_1 = PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 509, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6417, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 509, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_results = __pyx_t_2; - __pyx_t_2 = 0; + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_7 = __Pyx_TypeCheck(__pyx_v_results, __pyx_mstate_global->__pyx_ptype_5numpy_ndarray); - if (__pyx_t_7) { + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6418, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 511, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_1 = __pyx_t_6; - __Pyx_INCREF(__pyx_t_1); - __pyx_t_3 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_1, NULL}; - __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_keys, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 511, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } - __pyx_v_keys = __pyx_t_2; - __pyx_t_2 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6419, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_7 = PyList_Check(__pyx_v_keys); - __pyx_t_8 = (!__pyx_t_7); - if (__pyx_t_8) { + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 6420, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - __pyx_t_2 = PySequence_List(__pyx_v_keys); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 513, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF_SET(__pyx_v_keys, __pyx_t_2); - __pyx_t_2 = 0; + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6421, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; - } + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 514, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_keys, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 514, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (unlikely((PyObject_SetItem(__pyx_t_2, __pyx_t_6, __pyx_v_results) < 0))) __PYX_ERR(2, 514, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_v_lookback = (__pyx_v_begidx + TA_VORTEX_Lookback(__pyx_v_timeperiod)); - goto __pyx_L14; - } + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6424, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outplusvi = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - /*else*/ { - __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); - __pyx_t_6 = __pyx_mstate_global->__pyx_int_0; - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 516, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { - __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); - __pyx_t_4 = 0; - __pyx_t_5 = NULL; - } else { - __pyx_t_4 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 516, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 516, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - for (;;) { - if (likely(!__pyx_t_5)) { - if (likely(PyList_CheckExact(__pyx_t_1))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 516, __pyx_L1_error) - #endif - if (__pyx_t_4 >= __pyx_temp) break; - } - __pyx_t_2 = __Pyx_PyList_GetItemRefFast(__pyx_t_1, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_4; - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 516, __pyx_L1_error) - #endif - if (__pyx_t_4 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_2 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4)); - #else - __pyx_t_2 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_4); - #endif - ++__pyx_t_4; - } - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 516, __pyx_L1_error) - } else { - __pyx_t_2 = __pyx_t_5(__pyx_t_1); - if (unlikely(!__pyx_t_2)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 516, __pyx_L1_error) - PyErr_Clear(); - } - break; - } - } - __Pyx_GOTREF(__pyx_t_2); - __Pyx_XDECREF_SET(__pyx_v_output, __pyx_t_2); - __pyx_t_2 = 0; - __Pyx_INCREF(__pyx_t_6); - __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_6); - __pyx_t_2 = __Pyx_PyLong_AddObjC(__pyx_t_6, __pyx_mstate_global->__pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 516, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_6); - __pyx_t_6 = __pyx_t_2; - __pyx_t_2 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6425, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outminusvi = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_results, __pyx_v_i); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 517, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 517, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - if (unlikely((PyObject_SetItem(__pyx_t_9, __pyx_v_output, __pyx_t_2) < 0))) __PYX_ERR(2, 517, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_retCode = TA_VORTEX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outplusvi)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outminusvi)) + __pyx_v_lookback)); - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - } - __pyx_L14:; + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VORTEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6427, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs_valid, Py_True) < (0)) __PYX_ERR(2, 518, __pyx_L1_error) + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6428, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_outplusvi); + __Pyx_GIVEREF((PyObject *)__pyx_v_outplusvi); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outplusvi)) != (0)) __PYX_ERR(4, 6428, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outminusvi); + __Pyx_GIVEREF((PyObject *)__pyx_v_outminusvi); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outminusvi)) != (0)) __PYX_ERR(4, 6428, __pyx_L1_error); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_9); - __Pyx_XDECREF(__pyx_t_10); - __Pyx_AddTraceback("talib._ta_lib.Function.__call_function", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VORTEX", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_local); - __Pyx_XDECREF(__pyx_v_input_price_series_names); - __Pyx_XDECREF(__pyx_v_args); - __Pyx_XDECREF(__pyx_v_price_series); - __Pyx_XDECREF(__pyx_v_series); - __Pyx_XDECREF(__pyx_v_opt_input); - __Pyx_XDECREF(__pyx_v_value); - __Pyx_XDECREF(__pyx_v_results); - __Pyx_XDECREF(__pyx_v_keys); - __Pyx_XDECREF(__pyx_v_i); - __Pyx_XDECREF(__pyx_v_output); + __Pyx_XDECREF((PyObject *)__pyx_v_outplusvi); + __Pyx_XDECREF((PyObject *)__pyx_v_outminusvi); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -46408,36 +47163,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_36__call_function(CYTHON_UNU /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_39__check_opt_input_value(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_409VWAP(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_38__check_opt_input_value, "Function.__check_opt_input_value(self, input_name, value)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_39__check_opt_input_value = {"__check_opt_input_value", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_39__check_opt_input_value, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_38__check_opt_input_value}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_39__check_opt_input_value(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_408VWAP, "VWAP(ndarray high, ndarray low, ndarray close, ndarray volume)\n\nVWAP(high, low, close, volume)\n\nVolume Weighted Average Price (Volume Indicators)\n\nInputs:\n prices: ['high', 'low', 'close', 'volume']\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_409VWAP = {"VWAP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_409VWAP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_408VWAP}; +static PyObject *__pyx_pw_5talib_7_ta_lib_409VWAP(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; - PyObject *__pyx_v_input_name = 0; - PyObject *__pyx_v_value = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + PyArrayObject *__pyx_v_volume = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__check_opt_input_value (wrapper)", 0); + __Pyx_RefNannySetupContext("VWAP (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -46447,237 +47203,169 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_input_name,&__pyx_mstate_global->__pyx_n_u_value,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 520, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 6430, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 6430, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(2, 520, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 6430, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 520, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6430, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 520, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6430, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__check_opt_input_value", 0) < (0)) __PYX_ERR(2, 520, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__check_opt_input_value", 1, 3, 3, i); __PYX_ERR(2, 520, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "VWAP", 0) < (0)) __PYX_ERR(4, 6430, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("VWAP", 1, 4, 4, i); __PYX_ERR(4, 6430, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 520, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6430, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 520, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6430, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(2, 520, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 6430, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 6430, __pyx_L3_error) } - __pyx_v_self = values[0]; - __pyx_v_input_name = values[1]; - __pyx_v_value = values[2]; + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + __pyx_v_volume = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__check_opt_input_value", 1, 3, 3, __pyx_nargs); __PYX_ERR(2, 520, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("VWAP", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 6430, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.Function.__check_opt_input_value", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VWAP", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_38__check_opt_input_value(__pyx_self, __pyx_v_self, __pyx_v_input_name, __pyx_v_value); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 6432, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 6432, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 6432, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(4, 6432, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_408VWAP(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_38__check_opt_input_value(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_name, PyObject *__pyx_v_value) { - PyObject *__pyx_v_type_ = NULL; +static PyObject *__pyx_pf_5talib_7_ta_lib_408VWAP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - int __pyx_t_3; - PyObject *__pyx_t_4 = NULL; - int __pyx_t_5; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9[7]; - size_t __pyx_t_10; + 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("__check_opt_input_value", 0); + __Pyx_RefNannySetupContext("VWAP", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_INCREF((PyObject *)__pyx_v_volume); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 521, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 521, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_input_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 521, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6449, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_type_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 521, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_type_ = __pyx_t_2; - __pyx_t_2 = 0; + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __Pyx_INCREF(__pyx_v_type_); - __pyx_t_2 = __pyx_v_type_; - __pyx_t_1 = __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInput_IntegerList); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 522, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6450, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = PyObject_RichCompare(__pyx_t_2, __pyx_t_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 522, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(2, 522, __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_PyLong_From_TA_OptInputParameterType(TA_OptInput_IntegerRange); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 522, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_1 = PyObject_RichCompare(__pyx_t_2, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 522, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(2, 522, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_t_5; - __pyx_L4_bool_binop_done:; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __pyx_t_3; - if (__pyx_t_5) { - - __Pyx_INCREF((PyObject *)(&PyLong_Type)); - __Pyx_DECREF_SET(__pyx_v_type_, ((PyObject *)(&PyLong_Type))); - - goto __pyx_L3; - } + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __Pyx_INCREF(__pyx_v_type_); - __pyx_t_2 = __pyx_v_type_; - __pyx_t_1 = __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInput_RealList); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 524, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6451, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = PyObject_RichCompare(__pyx_t_2, __pyx_t_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 524, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(2, 524, __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_PyLong_From_TA_OptInputParameterType(TA_OptInput_RealRange); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 524, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_1 = PyObject_RichCompare(__pyx_t_2, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 524, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(2, 524, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_5 = __pyx_t_3; - __pyx_L6_bool_binop_done:; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_3 = __pyx_t_5; - if (__pyx_t_3) { - - __Pyx_INCREF((PyObject *)(&PyFloat_Type)); - __Pyx_DECREF_SET(__pyx_v_type_, ((PyObject *)(&PyFloat_Type))); - - } - __pyx_L3:; + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_3 = PyObject_IsInstance(__pyx_v_value, __pyx_v_type_); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 527, __pyx_L1_error) - if (__pyx_t_3) { + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6452, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(Py_True); - __pyx_r = Py_True; - goto __pyx_L0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 6453, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6454, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = (__pyx_v_value != Py_None); - if (unlikely(__pyx_t_3)) { + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_t_1 = NULL; + __pyx_v_lookback = (__pyx_v_begidx + TA_VWAP_Lookback()); - __pyx_t_4 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_input_name), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 532, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_type_, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 532, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_6), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 532, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(__pyx_v_value)), __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 532, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_8 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_6), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 532, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_9[0] = __pyx_mstate_global->__pyx_kp_u_Invalid_parameter_value_for; - __pyx_t_9[1] = __pyx_t_4; - __pyx_t_9[2] = __pyx_mstate_global->__pyx_kp_u_expected; - __pyx_t_9[3] = __pyx_t_7; - __pyx_t_9[4] = __pyx_mstate_global->__pyx_kp_u_got; - __pyx_t_9[5] = __pyx_t_8; - __pyx_t_9[6] = __pyx_mstate_global->__pyx_kp_u__5; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6457, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_6 = __Pyx_PyUnicode_Join(__pyx_t_9, 7, 28 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4) + 11 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_7) + 6 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8) + 1, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8)); - if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 531, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_10 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_TypeError)), __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 530, __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, 530, __pyx_L1_error) + __pyx_v_retCode = TA_VWAP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - } + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VWAP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6459, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(Py_False); - __pyx_r = Py_False; + __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_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_AddTraceback("talib._ta_lib.Function.__check_opt_input_value", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VWAP", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_type_); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF((PyObject *)__pyx_v_volume); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -46685,35 +47373,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_38__check_opt_input_value(CY /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_41__get_opt_input_value(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_411VWMA(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_40__get_opt_input_value, "Function.__get_opt_input_value(self, input_name)\n\nReturns the user-set value if there is one, otherwise the default."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_41__get_opt_input_value = {"__get_opt_input_value", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_41__get_opt_input_value, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_40__get_opt_input_value}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_41__get_opt_input_value(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_410VWMA, "VWMA(ndarray real, ndarray volume, int timeperiod=-0x80000000)\n\nVWMA(real, volume[, timeperiod=?])\n\nVolume Weighted Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\n prices: ['volume']\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_411VWMA = {"VWMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_411VWMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_410VWMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_411VWMA(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; - PyObject *__pyx_v_input_name = 0; + PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_volume = 0; + int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__get_opt_input_value (wrapper)", 0); + __Pyx_RefNannySetupContext("VWMA (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -46723,121 +47412,155 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_input_name,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 535, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 6462, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 6462, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 535, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6462, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 535, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6462, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__get_opt_input_value", 0) < (0)) __PYX_ERR(2, 535, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "VWMA", 0) < (0)) __PYX_ERR(4, 6462, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__get_opt_input_value", 1, 2, 2, i); __PYX_ERR(2, 535, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("VWMA", 0, 2, 3, i); __PYX_ERR(4, 6462, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 535, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 535, __pyx_L3_error) + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 6462, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6462, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6462, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_volume = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6464, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_self = values[0]; - __pyx_v_input_name = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__get_opt_input_value", 1, 2, 2, __pyx_nargs); __PYX_ERR(2, 535, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("VWMA", 0, 2, 3, __pyx_nargs); __PYX_ERR(4, 6462, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.Function.__get_opt_input_value", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VWMA", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_40__get_opt_input_value(__pyx_self, __pyx_v_self, __pyx_v_input_name); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 6464, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(4, 6464, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_410VWMA(__pyx_self, __pyx_v_real, __pyx_v_volume, __pyx_v_timeperiod); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_40__get_opt_input_value(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_name) { - PyObject *__pyx_v_local = NULL; - PyObject *__pyx_v_value = NULL; +static PyObject *__pyx_pf_5talib_7_ta_lib_410VWMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - int __pyx_t_3; + 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("__get_opt_input_value", 0); + __Pyx_RefNannySetupContext("VWMA", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_INCREF((PyObject *)__pyx_v_volume); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 539, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6484, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_local = __pyx_t_1; + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 540, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_input_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 540, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 540, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6485, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_value = __pyx_t_1; + __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_3 = (__pyx_v_value == Py_None); - if (__pyx_t_3) { + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 6486, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 542, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_input_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 542, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_default_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 542, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6487, __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_VWMA_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(4, 6490, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_VWMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VWMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6492, __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_value); - __pyx_r = __pyx_v_value; + __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_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.Function.__get_opt_input_value", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VWMA", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_local); - __Pyx_XDECREF(__pyx_v_value); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_volume); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -46845,34 +47568,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_40__get_opt_input_value(CYTH /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_43__repr__(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_413WAD(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_42__repr__, "Function.__repr__(self)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_43__repr__ = {"__repr__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_43__repr__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_42__repr__}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_43__repr__(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_412WAD, "WAD(ndarray high, ndarray low, ndarray close)\n\nWAD(high, low, close)\n\nWilliams' Accumulation/Distribution (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_413WAD = {"WAD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_413WAD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_412WAD}; +static PyObject *__pyx_pw_5talib_7_ta_lib_413WAD(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0); + __Pyx_RefNannySetupContext("WAD (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -46882,82 +47607,154 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 545, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 6495, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 6495, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6495, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 545, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6495, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__repr__", 0) < (0)) __PYX_ERR(2, 545, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__repr__", 1, 1, 1, i); __PYX_ERR(2, 545, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "WAD", 0) < (0)) __PYX_ERR(4, 6495, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("WAD", 1, 3, 3, i); __PYX_ERR(4, 6495, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 545, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6495, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6495, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 6495, __pyx_L3_error) } - __pyx_v_self = values[0]; + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__repr__", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 545, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("WAD", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 6495, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.Function.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WAD", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_42__repr__(__pyx_self, __pyx_v_self); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 6497, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 6497, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 6497, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_412WAD(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_42__repr__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_412WAD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__repr__", 0); + __Pyx_RefNannySetupContext("WAD", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 546, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6514, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6515, __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(4, 6516, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 6517, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6518, __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_WAD_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(4, 6521, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_WAD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WAD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6523, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_s_2, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 546, __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; + + __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_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.Function.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WAD", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((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; @@ -46965,34 +47762,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_42__repr__(CYTHON_UNUSED PyO /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_45__unicode__(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_415WCLPRICE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_44__unicode__, "Function.__unicode__(self)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_45__unicode__ = {"__unicode__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_45__unicode__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_44__unicode__}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_45__unicode__(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_414WCLPRICE, "WCLPRICE(ndarray high, ndarray low, ndarray close)\n\nWCLPRICE(high, low, close)\n\nWeighted Close Price (Price Transform)\n\nInputs:\n prices: ['high', 'low', 'close']\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_415WCLPRICE = {"WCLPRICE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_415WCLPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_414WCLPRICE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_415WCLPRICE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__unicode__ (wrapper)", 0); + __Pyx_RefNannySetupContext("WCLPRICE (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -47002,91 +47801,154 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 548, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 6526, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 6526, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6526, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 548, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6526, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__unicode__", 0) < (0)) __PYX_ERR(2, 548, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__unicode__", 1, 1, 1, i); __PYX_ERR(2, 548, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "WCLPRICE", 0) < (0)) __PYX_ERR(4, 6526, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("WCLPRICE", 1, 3, 3, i); __PYX_ERR(4, 6526, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 548, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6526, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6526, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 6526, __pyx_L3_error) } - __pyx_v_self = values[0]; + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__unicode__", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 548, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("WCLPRICE", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 6526, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.Function.__unicode__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WCLPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_44__unicode__(__pyx_self, __pyx_v_self); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 6528, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 6528, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 6528, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_414WCLPRICE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_44__unicode__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_414WCLPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - size_t __pyx_t_3; + 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("__unicode__", 0); + __Pyx_RefNannySetupContext("WCLPRICE", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); - __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = __pyx_v_self; - __Pyx_INCREF(__pyx_t_2); - __pyx_t_3 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_str, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 549, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_t_2 = __Pyx_PyObject_Unicode(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 549, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6545, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6546, __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(4, 6547, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 6548, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6549, __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(4, 6552, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WCLPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6554, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_r = __pyx_t_2; - __pyx_t_2 = 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_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.Function.__unicode__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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; @@ -47094,34 +47956,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_44__unicode__(CYTHON_UNUSED /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_47__str__(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_417WILLR(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_46__str__, "Function.__str__(self)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_47__str__ = {"__str__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_47__str__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_46__str__}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_47__str__(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_416WILLR, "WILLR(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nWILLR(high, low, close[, timeperiod=?])\n\nWilliams' %R (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_417WILLR = {"WILLR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_417WILLR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_416WILLR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_417WILLR(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__str__ (wrapper)", 0); + __Pyx_RefNannySetupContext("WILLR (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -47131,187 +47996,170 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 551, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 6557, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 6557, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 6557, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6557, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 551, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6557, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__str__", 0) < (0)) __PYX_ERR(2, 551, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__str__", 1, 1, 1, i); __PYX_ERR(2, 551, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "WILLR", 0) < (0)) __PYX_ERR(4, 6557, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("WILLR", 0, 3, 4, i); __PYX_ERR(4, 6557, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 551, __pyx_L3_error) + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 6557, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 6557, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6557, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6557, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6559, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_self = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__str__", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 551, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("WILLR", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 6557, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.Function.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WILLR", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_46__str__(__pyx_self, __pyx_v_self); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 6559, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 6559, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 6559, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_416WILLR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_46__str__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_416WILLR(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; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - size_t __pyx_t_5; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__str__", 0); - - __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_get_defaults_and_docs); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 552, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 552, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); - assert(__pyx_t_2); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_2); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_3, __pyx__function); - __pyx_t_5 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 552, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_1, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 552, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_r = __pyx_t_3; - __pyx_t_3 = 0; - goto __pyx_L0; + __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(4, 6578, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("talib._ta_lib.Function.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6579, __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(4, 6580, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_349_ta_getGroupTable(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_348_ta_getGroupTable, "_ta_getGroupTable()\n\nReturns the list of available TALIB function group names. *slow*"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_349_ta_getGroupTable = {"_ta_getGroupTable", (PyCFunction)__pyx_pw_5talib_7_ta_lib_349_ta_getGroupTable, METH_NOARGS, __pyx_doc_5talib_7_ta_lib_348_ta_getGroupTable}; -static PyObject *__pyx_pw_5talib_7_ta_lib_349_ta_getGroupTable(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) { - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("_ta_getGroupTable (wrapper)", 0); - __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_348_ta_getGroupTable(__pyx_self); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 6581, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6582, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; -static PyObject *__pyx_pf_5talib_7_ta_lib_348_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_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_GroupTableAlloc, TA_GroupTableAlloc((&__pyx_v_table)), 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 570, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_lookback = (__pyx_v_begidx + TA_WILLR_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 571, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6585, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_groups = ((PyObject*)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__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(2, 573, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_groups, __pyx_t_1); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(2, 573, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - } + __pyx_v_retCode = TA_WILLR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_GroupTableFree, TA_GroupTableFree(__pyx_v_table), 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 574, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WILLR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6587, __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; + __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._ta_getGroupTable", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WILLR", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_groups); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -47319,34 +48167,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_348_ta_getGroupTable(CYTHON_UNUSED PyO /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_351_ta_getFuncTable(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_419WMA(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_350_ta_getFuncTable, "_ta_getFuncTable(char *group)\n\nReturns a list of the functions for the specified group name. *slow*"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_351_ta_getFuncTable = {"_ta_getFuncTable", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_351_ta_getFuncTable, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_350_ta_getFuncTable}; -static PyObject *__pyx_pw_5talib_7_ta_lib_351_ta_getFuncTable(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_418WMA, "WMA(ndarray real, int timeperiod=-0x80000000)\n\nWMA(real[, timeperiod=?])\n\nWeighted Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_419WMA = {"WMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_419WMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_418WMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_419WMA(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - char *__pyx_v_group; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("_ta_getFuncTable (wrapper)", 0); + __Pyx_RefNannySetupContext("WMA (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -47356,107 +48205,138 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_group,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 577, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 6590, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6590, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 577, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6590, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_getFuncTable", 0) < (0)) __PYX_ERR(2, 577, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "WMA", 0) < (0)) __PYX_ERR(4, 6590, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_getFuncTable", 1, 1, 1, i); __PYX_ERR(2, 577, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("WMA", 0, 1, 2, i); __PYX_ERR(4, 6590, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 577, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6590, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6590, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6592, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_group = __Pyx_PyObject_AsWritableString(values[0]); if (unlikely((!__pyx_v_group) && PyErr_Occurred())) __PYX_ERR(2, 577, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_ta_getFuncTable", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 577, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("WMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 6590, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib._ta_getFuncTable", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WMA", __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_getFuncTable(__pyx_self, __pyx_v_group); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 6592, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_418WMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_350_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; +static PyObject *__pyx_pf_5talib_7_ta_lib_418WMA(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; - unsigned int __pyx_t_2; - unsigned int __pyx_t_3; - unsigned int __pyx_t_4; - int __pyx_t_5; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("_ta_getFuncTable", 0); + __Pyx_RefNannySetupContext("WMA", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FuncTableAlloc, TA_FuncTableAlloc(__pyx_v_group, (&__pyx_v_table)), 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 582, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6611, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6613, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 583, __pyx_L1_error) + __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(4, 6616, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_functions = ((PyObject*)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__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(2, 585, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_functions, __pyx_t_1); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(2, 585, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - } + __pyx_v_retCode = TA_WMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FuncTableFree, TA_FuncTableFree(__pyx_v_table), 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 586, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6618, __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; + __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._ta_getFuncTable", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WMA", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_functions); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -47464,24 +48344,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_350_ta_getFuncTable(CYTHON_UNUSED PyOb /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_353__get_flags(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_421ZLEMA(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_352__get_flags, "__get_flags(int flag, dict flags_lookup_dict)\n\nTA-LIB provides hints for multiple flags as a bitwise-ORed int.\nThis function returns the flags from flag found in the provided\nflags_lookup_dict."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_353__get_flags = {"__get_flags", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_353__get_flags, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_352__get_flags}; -static PyObject *__pyx_pw_5talib_7_ta_lib_353__get_flags(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_420ZLEMA, "ZLEMA(ndarray real, int timeperiod=-0x80000000)\n\nZLEMA(real[, timeperiod=?])\n\nZero-Lag Exponential Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_421ZLEMA = {"ZLEMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_421ZLEMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_420ZLEMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_421ZLEMA(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - int __pyx_v_flag; - PyObject *__pyx_v_flags_lookup_dict = 0; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -47492,7 +48372,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__get_flags (wrapper)", 0); + __Pyx_RefNannySetupContext("ZLEMA (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -47502,53 +48382,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_flag,&__pyx_mstate_global->__pyx_n_u_flags_lookup_dict,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 589, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 6621, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 589, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6621, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 589, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6621, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__get_flags", 0) < (0)) __PYX_ERR(2, 589, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__get_flags", 1, 2, 2, i); __PYX_ERR(2, 589, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ZLEMA", 0) < (0)) __PYX_ERR(4, 6621, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ZLEMA", 0, 1, 2, i); __PYX_ERR(4, 6621, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 589, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 589, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6621, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6621, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6623, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_flag = __Pyx_PyLong_As_int(values[0]); if (unlikely((__pyx_v_flag == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 589, __pyx_L3_error) - __pyx_v_flags_lookup_dict = ((PyObject*)values[1]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__get_flags", 1, 2, 2, __pyx_nargs); __PYX_ERR(2, 589, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("ZLEMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 6621, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.__get_flags", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ZLEMA", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flags_lookup_dict), (&PyDict_Type), 1, "flags_lookup_dict", 1))) __PYX_ERR(2, 589, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_352__get_flags(__pyx_self, __pyx_v_flag, __pyx_v_flags_lookup_dict); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 6623, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_420ZLEMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -47567,246 +48456,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_352__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; +static PyObject *__pyx_pf_5talib_7_ta_lib_420ZLEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; - int __pyx_t_3; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - size_t __pyx_t_8; - PyObject *(*__pyx_t_9)(PyObject *); - int __pyx_t_10; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__get_flags", 0); + __Pyx_RefNannySetupContext("ZLEMA", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - if (unlikely(__pyx_v_flags_lookup_dict == Py_None)) { - PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "keys"); - __PYX_ERR(2, 595, __pyx_L1_error) - } - __pyx_t_1 = __Pyx_PyDict_Keys(__pyx_v_flags_lookup_dict); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 595, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6642, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_value_range = __pyx_t_1; + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = PyList_Check(__pyx_v_value_range); - __pyx_t_3 = (!__pyx_t_2); - if (__pyx_t_3) { - - __pyx_t_1 = PySequence_List(__pyx_v_value_range); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 597, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_value_range, __pyx_t_1); - __pyx_t_1 = 0; - - } - - __pyx_t_4 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_math); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 598, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_log); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 598, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_7 = NULL; - __pyx_t_8 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_v_value_range}; - __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_min, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 598, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - } - __pyx_t_8 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_6))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_6); - assert(__pyx_t_4); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); - __pyx_t_8 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_5, __pyx_mstate_global->__pyx_int_2}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_8, (3-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 598, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_t_6 = __Pyx_PyNumber_Int(__pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 598, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_min_int = ((PyObject*)__pyx_t_6); - __pyx_t_6 = 0; - - __pyx_t_1 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_math); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 599, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_log); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 599, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_7 = NULL; - __pyx_t_8 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_v_value_range}; - __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_max, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 599, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - } - __pyx_t_8 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_1); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_1); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_8 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_1, __pyx_t_5, __pyx_mstate_global->__pyx_int_2}; - __pyx_t_6 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_8, (3-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 599, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - } - __pyx_t_4 = __Pyx_PyNumber_Int(__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 599, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_v_max_int = ((PyObject*)__pyx_t_4); - __pyx_t_4 = 0; - - __pyx_t_2 = (__pyx_v_flag < 1); - if (!__pyx_t_2) { - } else { - __pyx_t_3 = __pyx_t_2; - goto __pyx_L5_bool_binop_done; - } - __pyx_t_4 = __Pyx_PyLong_From_int(__pyx_v_flag); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 602, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = PyNumber_Power(__pyx_mstate_global->__pyx_int_2, __pyx_v_max_int, Py_None); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 602, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_5 = PyObject_RichCompare(__pyx_t_4, __pyx_t_6, Py_GT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 602, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 602, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 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_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 608, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_v_ret = ((PyObject*)__pyx_t_5); - __pyx_t_5 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6644, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; - __pyx_t_6 = NULL; - __pyx_t_4 = __Pyx_PyLong_AddObjC(__pyx_v_max_int, __pyx_mstate_global->__pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 609, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_8 = 1; - { - PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_v_min_int, __pyx_t_4}; - __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)(&PyRange_Type), __pyx_callargs+__pyx_t_8, (3-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 609, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - } - __pyx_t_4 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 609, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_9 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 609, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - for (;;) { - { - __pyx_t_5 = __pyx_t_9(__pyx_t_4); - if (unlikely(!__pyx_t_5)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 609, __pyx_L1_error) - PyErr_Clear(); - } - break; - } - } - __Pyx_GOTREF(__pyx_t_5); - if (__Pyx_PyInt_FromNumber(&__pyx_t_5, NULL, 1) < (0)) __PYX_ERR(2, 609, __pyx_L1_error) - __Pyx_XDECREF_SET(__pyx_v_i, ((PyObject*)__pyx_t_5)); - __pyx_t_5 = 0; + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_t_5 = PyNumber_Power(__pyx_mstate_global->__pyx_int_2, __pyx_v_i, Py_None); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 610, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = __Pyx_PyLong_From_int(__pyx_v_flag); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 610, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_1 = PyNumber_And(__pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 610, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(2, 610, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (__pyx_t_3) { + __pyx_v_lookback = (__pyx_v_begidx + TA_ZLEMA_Lookback(__pyx_v_timeperiod)); - if (unlikely(__pyx_v_flags_lookup_dict == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(2, 611, __pyx_L1_error) - } - __pyx_t_1 = PyNumber_Power(__pyx_mstate_global->__pyx_int_2, __pyx_v_i, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 611, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_flags_lookup_dict, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 611, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_ret, __pyx_t_6); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(2, 611, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6647, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - } + __pyx_v_retCode = TA_ZLEMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); - } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ZLEMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6649, __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_ret); - __pyx_r = __pyx_v_ret; + __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_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_AddTraceback("talib._ta_lib.__get_flags", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ZLEMA", __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_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -47814,23 +48521,23 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_352__get_flags(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_355_ta_getFuncInfo(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_423str2bytes(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_354_ta_getFuncInfo, "_ta_getFuncInfo(char *function_name)\n\nReturns the info dict for the function. It has the following keys: name,\ngroup, help, flags, num_inputs, num_opt_inputs and num_outputs."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_355_ta_getFuncInfo = {"_ta_getFuncInfo", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_355_ta_getFuncInfo, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_354_ta_getFuncInfo}; -static PyObject *__pyx_pw_5talib_7_ta_lib_355_ta_getFuncInfo(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_422str2bytes, "str2bytes(s)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_423str2bytes = {"str2bytes", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_423str2bytes, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_422str2bytes}; +static PyObject *__pyx_pw_5talib_7_ta_lib_423str2bytes(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - char *__pyx_v_function_name; + PyObject *__pyx_v_s = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -47841,7 +48548,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("_ta_getFuncInfo (wrapper)", 0); + __Pyx_RefNannySetupContext("str2bytes (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -47851,45 +48558,45 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_function_name,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_s,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 648, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 73, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 648, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 73, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_getFuncInfo", 0) < (0)) __PYX_ERR(2, 648, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "str2bytes", 0) < (0)) __PYX_ERR(2, 73, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_getFuncInfo", 1, 1, 1, i); __PYX_ERR(2, 648, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("str2bytes", 1, 1, 1, i); __PYX_ERR(2, 73, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 648, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 73, __pyx_L3_error) } - __pyx_v_function_name = __Pyx_PyObject_AsWritableString(values[0]); if (unlikely((!__pyx_v_function_name) && PyErr_Occurred())) __PYX_ERR(2, 648, __pyx_L3_error) + __pyx_v_s = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_ta_getFuncInfo", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 648, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("str2bytes", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 73, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib._ta_getFuncInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.str2bytes", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_354_ta_getFuncInfo(__pyx_self, __pyx_v_function_name); + __pyx_r = __pyx_pf_5talib_7_ta_lib_422str2bytes(__pyx_self, __pyx_v_s); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -47899,212 +48606,37 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_354_ta_getFuncInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name) { - TA_FuncInfo const *__pyx_v_info; - TA_RetCode __pyx_v_retCode; +static PyObject *__pyx_pf_5talib_7_ta_lib_422str2bytes(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_s) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - TA_FuncHandle const *__pyx_t_1; + 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; - size_t __pyx_t_7; - PyObject *__pyx_t_8 = NULL; + size_t __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("_ta_getFuncInfo", 0); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib___ta_getFuncHandle(__pyx_v_function_name); if (unlikely(__pyx_t_1 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(2, 654, __pyx_L1_error) - __pyx_v_retCode = TA_GetFuncInfo(__pyx_t_1, (&__pyx_v_info)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_GetFuncInfo, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 655, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_RefNannySetupContext("str2bytes", 0); __Pyx_XDECREF(__pyx_r); - - __pyx_t_2 = __Pyx_PyDict_NewPresized(7); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 658, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_bytes2str); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 658, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = __Pyx_PyBytes_FromString(__pyx_v_info->name); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 658, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_5))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5); - assert(__pyx_t_4); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_5, __pyx__function); - __pyx_t_7 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_6}; - __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 658, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - } - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_name, __pyx_t_3) < (0)) __PYX_ERR(2, 658, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - __pyx_t_5 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_bytes2str); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 659, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_4 = __Pyx_PyBytes_FromString(__pyx_v_info->group); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 659, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_7 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_6))) { - __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); - assert(__pyx_t_5); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); - __pyx_t_7 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; - __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 659, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - } - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_group, __pyx_t_3) < (0)) __PYX_ERR(2, 658, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - __pyx_t_6 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_bytes2str); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 660, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyBytes_FromString(__pyx_v_info->hint); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 660, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_7 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_6); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_7 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_5}; - __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 660, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - } - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_display_name, __pyx_t_3) < (0)) __PYX_ERR(2, 658, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - __pyx_t_4 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_get_flags); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 661, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = __Pyx_PyLong_From_TA_FuncFlags(__pyx_v_info->flags); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 661, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_TA_FUNC_FLAGS); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 661, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_7 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_5))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5); - assert(__pyx_t_4); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_5, __pyx__function); - __pyx_t_7 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_6, __pyx_t_8}; - __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 661, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - } - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_function_flags, __pyx_t_3) < (0)) __PYX_ERR(2, 658, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - __pyx_t_5 = NULL; - __pyx_t_8 = __Pyx_PyLong_From_unsigned_int(__pyx_v_info->nbInput); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 662, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_7 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_8}; - __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(&PyLong_Type), __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 662, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - } - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_num_inputs, __pyx_t_3) < (0)) __PYX_ERR(2, 658, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - __pyx_t_8 = NULL; - __pyx_t_5 = __Pyx_PyLong_From_unsigned_int(__pyx_v_info->nbOptInput); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 663, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_7 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_5}; - __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(&PyLong_Type), __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 663, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - } - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_num_opt_inputs, __pyx_t_3) < (0)) __PYX_ERR(2, 658, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - __pyx_t_5 = NULL; - __pyx_t_8 = __Pyx_PyLong_From_unsigned_int(__pyx_v_info->nbOutput); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 664, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_7 = 1; + __pyx_t_2 = NULL; + __pyx_t_3 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_8}; - __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(&PyLong_Type), __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 664, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_s, __pyx_mstate_global->__pyx_n_u_ascii}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(&PyBytes_Type), __pyx_callargs+__pyx_t_3, (3-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 74, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); } - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_num_outputs, __pyx_t_3) < (0)) __PYX_ERR(2, 658, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_r = __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_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_AddTraceback("talib._ta_lib.str2bytes", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); @@ -48114,35 +48646,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_354_ta_getFuncInfo(CYTHON_UNUSED PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_357_ta_getInputParameterInfo(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_425bytes2str(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_356_ta_getInputParameterInfo, "_ta_getInputParameterInfo(char *function_name, int idx)\n\nReturns the function's input info dict for the given index. It has two\nkeys: name and flags."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_357_ta_getInputParameterInfo = {"_ta_getInputParameterInfo", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_357_ta_getInputParameterInfo, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_356_ta_getInputParameterInfo}; -static PyObject *__pyx_pw_5talib_7_ta_lib_357_ta_getInputParameterInfo(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_424bytes2str, "bytes2str(b)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_425bytes2str = {"bytes2str", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_425bytes2str, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_424bytes2str}; +static PyObject *__pyx_pw_5talib_7_ta_lib_425bytes2str(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - char *__pyx_v_function_name; - int __pyx_v_idx; + PyObject *__pyx_v_b = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("_ta_getInputParameterInfo (wrapper)", 0); + __Pyx_RefNannySetupContext("bytes2str (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -48152,52 +48683,45 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_function_name,&__pyx_mstate_global->__pyx_n_u_idx,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_b,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 667, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 76, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 667, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 667, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 76, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_getInputParameterInfo", 0) < (0)) __PYX_ERR(2, 667, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_getInputParameterInfo", 1, 2, 2, i); __PYX_ERR(2, 667, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "bytes2str", 0) < (0)) __PYX_ERR(2, 76, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("bytes2str", 1, 1, 1, i); __PYX_ERR(2, 76, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 667, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 667, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 76, __pyx_L3_error) } - __pyx_v_function_name = __Pyx_PyObject_AsWritableString(values[0]); if (unlikely((!__pyx_v_function_name) && PyErr_Occurred())) __PYX_ERR(2, 667, __pyx_L3_error) - __pyx_v_idx = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_idx == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 667, __pyx_L3_error) + __pyx_v_b = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_ta_getInputParameterInfo", 1, 2, 2, __pyx_nargs); __PYX_ERR(2, 667, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("bytes2str", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 76, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib._ta_getInputParameterInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.bytes2str", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_356_ta_getInputParameterInfo(__pyx_self, __pyx_v_function_name, __pyx_v_idx); + __pyx_r = __pyx_pf_5talib_7_ta_lib_424bytes2str(__pyx_self, __pyx_v_b); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -48207,157 +48731,40 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_356_ta_getInputParameterInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name, int __pyx_v_idx) { - TA_InputParameterInfo const *__pyx_v_info; - TA_RetCode __pyx_v_retCode; - PyObject *__pyx_v_name = NULL; +static PyObject *__pyx_pf_5talib_7_ta_lib_424bytes2str(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_b) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - TA_FuncHandle const *__pyx_t_1; + 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; - size_t __pyx_t_6; - Py_ssize_t __pyx_t_7; - int __pyx_t_8; - PyObject *__pyx_t_9 = NULL; - PyObject *__pyx_t_10 = NULL; + size_t __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("_ta_getInputParameterInfo", 0); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib___ta_getFuncHandle(__pyx_v_function_name); if (unlikely(__pyx_t_1 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(2, 673, __pyx_L1_error) - __pyx_v_retCode = TA_GetInputParameterInfo(__pyx_t_1, __pyx_v_idx, (&__pyx_v_info)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_GetInputParameterInfo, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 674, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_RefNannySetupContext("bytes2str", 0); - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_bytes2str); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 676, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyBytes_FromString(__pyx_v_info->paramName); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 676, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_6 = 0; - } - #endif + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_v_b; + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; { - PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_5}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 676, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ascii}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_decode, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 77, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); } - __pyx_v_name = __pyx_t_2; - __pyx_t_2 = 0; - - __pyx_t_7 = __Pyx_PyUnicode_GET_LENGTH(__pyx_mstate_global->__pyx_n_u_in); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(2, 677, __pyx_L1_error) - __pyx_t_5 = __Pyx_PyObject_GetSlice(__pyx_v_name, __pyx_t_7, 0, NULL, NULL, NULL, 1, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 677, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_4 = __pyx_t_5; - __Pyx_INCREF(__pyx_t_4); - __pyx_t_6 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; - __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_lower, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 677, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } - __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_2); - __pyx_t_2 = 0; - - __pyx_t_8 = (__Pyx_PySequence_ContainsTF(__pyx_mstate_global->__pyx_n_u_real, __pyx_v_name, Py_EQ)); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(2, 678, __pyx_L1_error) - if (__pyx_t_8) { - - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_name, __pyx_mstate_global->__pyx_n_u_replace); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 679, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[0], NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 679, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_5); - __pyx_t_5 = 0; - - goto __pyx_L3; - } - - __pyx_t_8 = (__Pyx_PySequence_ContainsTF(__pyx_mstate_global->__pyx_n_u_price, __pyx_v_name, Py_EQ)); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(2, 680, __pyx_L1_error) - if (__pyx_t_8) { - - __Pyx_INCREF(__pyx_mstate_global->__pyx_n_u_prices); - __Pyx_DECREF_SET(__pyx_v_name, __pyx_mstate_global->__pyx_n_u_prices); - - } - __pyx_L3:; - - __Pyx_XDECREF(__pyx_r); - - __pyx_t_5 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 684, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_name, __pyx_v_name) < (0)) __PYX_ERR(2, 684, __pyx_L1_error) - - __pyx_t_4 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_get_flags); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 685, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_9 = __Pyx_PyLong_From_TA_InputFlags(__pyx_v_info->flags); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 685, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_TA_INPUT_FLAGS); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 685, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __pyx_t_6 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); - assert(__pyx_t_4); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_3, __pyx__function); - __pyx_t_6 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_9, __pyx_t_10}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_6, (3-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 685, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } - if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_price_series, __pyx_t_2) < (0)) __PYX_ERR(2, 684, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_r = __pyx_t_5; - __pyx_t_5 = 0; - goto __pyx_L0; + __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_9); - __Pyx_XDECREF(__pyx_t_10); - __Pyx_AddTraceback("talib._ta_lib._ta_getInputParameterInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.bytes2str", __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; @@ -48365,35 +48772,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_356_ta_getInputParameterInfo(CYTHON_UN /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_359_ta_getOptInputParameterInfo(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_427str2bytes(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_358_ta_getOptInputParameterInfo, "_ta_getOptInputParameterInfo(char *function_name, int idx)\n\nReturns the function's opt_input info dict for the given index. It has the\nfollowing keys: name, display_name, type, help, default_value and value."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_359_ta_getOptInputParameterInfo = {"_ta_getOptInputParameterInfo", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_359_ta_getOptInputParameterInfo, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_358_ta_getOptInputParameterInfo}; -static PyObject *__pyx_pw_5talib_7_ta_lib_359_ta_getOptInputParameterInfo(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_426str2bytes, "str2bytes(s)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_427str2bytes = {"str2bytes", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_427str2bytes, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_426str2bytes}; +static PyObject *__pyx_pw_5talib_7_ta_lib_427str2bytes(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - char *__pyx_v_function_name; - int __pyx_v_idx; + PyObject *__pyx_v_s = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("_ta_getOptInputParameterInfo (wrapper)", 0); + __Pyx_RefNannySetupContext("str2bytes (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -48403,52 +48809,45 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_function_name,&__pyx_mstate_global->__pyx_n_u_idx,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_s,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 688, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 81, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 688, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 688, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 81, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_getOptInputParameterInfo", 0) < (0)) __PYX_ERR(2, 688, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_getOptInputParameterInfo", 1, 2, 2, i); __PYX_ERR(2, 688, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "str2bytes", 0) < (0)) __PYX_ERR(2, 81, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("str2bytes", 1, 1, 1, i); __PYX_ERR(2, 81, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 688, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 688, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 81, __pyx_L3_error) } - __pyx_v_function_name = __Pyx_PyObject_AsWritableString(values[0]); if (unlikely((!__pyx_v_function_name) && PyErr_Occurred())) __PYX_ERR(2, 688, __pyx_L3_error) - __pyx_v_idx = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_idx == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 688, __pyx_L3_error) + __pyx_v_s = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_ta_getOptInputParameterInfo", 1, 2, 2, __pyx_nargs); __PYX_ERR(2, 688, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("str2bytes", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 81, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib._ta_getOptInputParameterInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.str2bytes", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_358_ta_getOptInputParameterInfo(__pyx_self, __pyx_v_function_name, __pyx_v_idx); + __pyx_r = __pyx_pf_5talib_7_ta_lib_426str2bytes(__pyx_self, __pyx_v_s); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -48458,184 +48857,124 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_358_ta_getOptInputParameterInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name, int __pyx_v_idx) { - TA_OptInputParameterInfo const *__pyx_v_info; - TA_RetCode __pyx_v_retCode; - PyObject *__pyx_v_name = NULL; - PyObject *__pyx_v_default_value = NULL; +static PyObject *__pyx_pf_5talib_7_ta_lib_426str2bytes(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_s) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - TA_FuncHandle const *__pyx_t_1; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - size_t __pyx_t_6; - Py_ssize_t __pyx_t_7; - int __pyx_t_8; - PyObject *__pyx_t_9 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("_ta_getOptInputParameterInfo", 0); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib___ta_getFuncHandle(__pyx_v_function_name); if (unlikely(__pyx_t_1 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(2, 694, __pyx_L1_error) - __pyx_v_retCode = TA_GetOptInputParameterInfo(__pyx_t_1, __pyx_v_idx, (&__pyx_v_info)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_GetOptInputParameterInfo, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 695, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_bytes2str); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 697, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyBytes_FromString(__pyx_v_info->paramName); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 697, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_6 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_5}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 697, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } - __pyx_v_name = __pyx_t_2; - __pyx_t_2 = 0; + __Pyx_RefNannySetupContext("str2bytes", 0); - __pyx_t_7 = __Pyx_PyUnicode_GET_LENGTH(__pyx_mstate_global->__pyx_n_u_optIn); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(2, 698, __pyx_L1_error) - __pyx_t_5 = __Pyx_PyObject_GetSlice(__pyx_v_name, __pyx_t_7, 0, NULL, NULL, NULL, 1, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 698, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_4 = __pyx_t_5; - __Pyx_INCREF(__pyx_t_4); - __pyx_t_6 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; - __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_lower, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 698, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } - __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_2); - __pyx_t_2 = 0; + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_s); + __pyx_r = __pyx_v_s; + goto __pyx_L0; - __pyx_t_8 = (__pyx_v_info->type > 1); - if (__pyx_t_8) { - __pyx_t_5 = PyLong_FromDouble(__pyx_v_info->defaultValue); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 699, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_2 = __pyx_t_5; - __pyx_t_5 = 0; - } else { - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_info->defaultValue); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 699, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_2 = __pyx_t_5; - __pyx_t_5 = 0; - } - __pyx_v_default_value = __pyx_t_2; - __pyx_t_2 = 0; - __Pyx_XDECREF(__pyx_r); + /* function exit code */ + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} - __pyx_t_2 = __Pyx_PyDict_NewPresized(6); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 702, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_name, __pyx_v_name) < (0)) __PYX_ERR(2, 702, __pyx_L1_error) - __pyx_t_4 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_bytes2str); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 703, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_9 = __Pyx_PyBytes_FromString(__pyx_v_info->displayName); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 703, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_6 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); - assert(__pyx_t_4); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_3, __pyx__function); - __pyx_t_6 = 0; - } +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_429bytes2str(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_428bytes2str, "bytes2str(b)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_429bytes2str = {"bytes2str", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_429bytes2str, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_428bytes2str}; +static PyObject *__pyx_pw_5talib_7_ta_lib_429bytes2str(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_b = 0; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("bytes2str (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 703, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_b,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 84, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 84, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "bytes2str", 0) < (0)) __PYX_ERR(2, 84, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("bytes2str", 1, 1, 1, i); __PYX_ERR(2, 84, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 84, __pyx_L3_error) + } + __pyx_v_b = values[0]; } - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_display_name, __pyx_t_5) < (0)) __PYX_ERR(2, 702, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - - __pyx_t_5 = __Pyx_PyLong_From_TA_OptInputParameterType(__pyx_v_info->type); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 704, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_type_2, __pyx_t_5) < (0)) __PYX_ERR(2, 702, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_bytes2str); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 705, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_4 = __Pyx_PyBytes_FromString(__pyx_v_info->hint); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 705, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_9))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_9); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_9); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_9, __pyx__function); - __pyx_t_6 = 0; + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("bytes2str", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 84, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4}; - __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_9, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 705, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.bytes2str", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_428bytes2str(__pyx_self, __pyx_v_b); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); } - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_help, __pyx_t_5) < (0)) __PYX_ERR(2, 702, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_default_value, __pyx_v_default_value) < (0)) __PYX_ERR(2, 702, __pyx_L1_error) +static PyObject *__pyx_pf_5talib_7_ta_lib_428bytes2str(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_b) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("bytes2str", 0); - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_value, Py_None) < (0)) __PYX_ERR(2, 702, __pyx_L1_error) - __pyx_r = __pyx_t_2; - __pyx_t_2 = 0; + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_b); + __pyx_r = __pyx_v_b; goto __pyx_L0; /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_9); - __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; @@ -48643,35 +48982,38 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_358_ta_getOptInputParameterInfo(CYTHON /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_361_ta_getOutputParameterInfo(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_1__init__(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_360_ta_getOutputParameterInfo, "_ta_getOutputParameterInfo(char *function_name, int idx)\n\nReturns the function's output info dict for the given index. It has two\nkeys: name and flags."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_361_ta_getOutputParameterInfo = {"_ta_getOutputParameterInfo", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_361_ta_getOutputParameterInfo, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_360_ta_getOutputParameterInfo}; -static PyObject *__pyx_pw_5talib_7_ta_lib_361_ta_getOutputParameterInfo(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function___init__, "Function.__init__(self, function_name, func_object, *args, **kwargs)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function___init__}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_1__init__(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - char *__pyx_v_function_name; - int __pyx_v_idx; + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_function_name = 0; + PyObject *__pyx_v_func_object = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kwargs = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("_ta_getOutputParameterInfo (wrapper)", 0); + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -48680,229 +49022,196 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return NULL; + __Pyx_GOTREF(__pyx_v_kwargs); + __pyx_v_args = __Pyx_ArgsSlice_FASTCALL(__pyx_args, 3, __pyx_nargs); + if (unlikely(!__pyx_v_args)) { + __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0; + __Pyx_RefNannyFinishContext(); + return NULL; + } + __Pyx_GOTREF(__pyx_v_args); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_function_name,&__pyx_mstate_global->__pyx_n_u_idx,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_function_name,&__pyx_mstate_global->__pyx_n_u_func_object,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 710, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 116, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + default: + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(2, 116, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 710, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 116, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 710, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 116, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; - default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_getOutputParameterInfo", 0) < (0)) __PYX_ERR(2, 710, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_getOutputParameterInfo", 1, 2, 2, i); __PYX_ERR(2, 710, __pyx_L3_error) } + const Py_ssize_t used_pos_args = (kwd_pos_args < 3) ? kwd_pos_args : 3; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, __pyx_kwds_len, "__init__", 1) < (0)) __PYX_ERR(2, 116, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 3, i); __PYX_ERR(2, 116, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs < 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 710, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 116, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 710, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 116, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(2, 116, __pyx_L3_error) } - __pyx_v_function_name = __Pyx_PyObject_AsWritableString(values[0]); if (unlikely((!__pyx_v_function_name) && PyErr_Occurred())) __PYX_ERR(2, 710, __pyx_L3_error) - __pyx_v_idx = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_idx == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 710, __pyx_L3_error) + __pyx_v_self = values[0]; + __pyx_v_function_name = values[1]; + __pyx_v_func_object = values[2]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_ta_getOutputParameterInfo", 1, 2, 2, __pyx_nargs); __PYX_ERR(2, 710, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 3, __pyx_nargs); __PYX_ERR(2, 116, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib._ta_getOutputParameterInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_360_ta_getOutputParameterInfo(__pyx_self, __pyx_v_function_name, __pyx_v_idx); + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function___init__(__pyx_self, __pyx_v_self, __pyx_v_function_name, __pyx_v_func_object, __pyx_v_args, __pyx_v_kwargs); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_DECREF(__pyx_v_args); + __Pyx_DECREF(__pyx_v_kwargs); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_360_ta_getOutputParameterInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name, int __pyx_v_idx) { - TA_OutputParameterInfo const *__pyx_v_info; - TA_RetCode __pyx_v_retCode; - PyObject *__pyx_v_name = NULL; +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 - TA_FuncHandle const *__pyx_t_1; + PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; - size_t __pyx_t_6; - Py_ssize_t __pyx_t_7; - int __pyx_t_8; - int __pyx_t_9; - int __pyx_t_10; - PyObject *__pyx_t_11 = NULL; - PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("_ta_getOutputParameterInfo", 0); + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib___ta_getFuncHandle(__pyx_v_function_name); if (unlikely(__pyx_t_1 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(2, 716, __pyx_L1_error) - __pyx_v_retCode = TA_GetOutputParameterInfo(__pyx_t_1, __pyx_v_idx, (&__pyx_v_info)); + __pyx_t_2 = __pyx_v_function_name; + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_upper, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 118, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name, __pyx_t_1) < (0)) __PYX_ERR(2, 118, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_GetOutputParameterInfo, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 717, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 119, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__namestr, __pyx_t_1) < (0)) __PYX_ERR(2, 119, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_bytes2str); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 719, __pyx_L1_error) + __pyx_t_2 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_str2bytes); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyBytes_FromString(__pyx_v_info->paramName); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 719, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = 1; + __pyx_t_3 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_2); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_6 = 0; + __pyx_t_3 = 0; } #endif { - PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_5}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_5}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 719, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 120, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); } - __pyx_v_name = __pyx_t_2; - __pyx_t_2 = 0; + if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name, __pyx_t_1) < (0)) __PYX_ERR(2, 120, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_7 = __Pyx_PyUnicode_GET_LENGTH(__pyx_mstate_global->__pyx_n_u_out); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(2, 720, __pyx_L1_error) - __pyx_t_5 = __Pyx_PyObject_GetSlice(__pyx_v_name, __pyx_t_7, 0, NULL, NULL, NULL, 1, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 720, __pyx_L1_error) + __pyx_t_4 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_threading); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 123, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_4 = __pyx_t_5; - __Pyx_INCREF(__pyx_t_4); - __pyx_t_6 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; - __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_lower, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 720, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } - __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_2); - __pyx_t_2 = 0; - - __pyx_t_9 = (__Pyx_PySequence_ContainsTF(__pyx_mstate_global->__pyx_n_u_real, __pyx_v_name, Py_EQ)); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(2, 722, __pyx_L1_error) - if (__pyx_t_9) { - } else { - __pyx_t_8 = __pyx_t_9; - goto __pyx_L4_bool_binop_done; - } - __Pyx_INCREF(__pyx_v_name); - __pyx_t_2 = __pyx_v_name; - __pyx_t_10 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_real, Py_NE)); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(2, 722, __pyx_L1_error) - if (__pyx_t_10) { - } else { - __pyx_t_9 = __pyx_t_10; - goto __pyx_L6_bool_binop_done; - } - __pyx_t_10 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_real0, Py_NE)); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(2, 722, __pyx_L1_error) - if (__pyx_t_10) { - } else { - __pyx_t_9 = __pyx_t_10; - goto __pyx_L6_bool_binop_done; - } - __pyx_t_10 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_real1, Py_NE)); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(2, 722, __pyx_L1_error) - __pyx_t_9 = __pyx_t_10; - __pyx_L6_bool_binop_done:; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_10 = __pyx_t_9; - __pyx_t_8 = __pyx_t_10; - __pyx_L4_bool_binop_done:; - if (__pyx_t_8) { - - __pyx_t_7 = __Pyx_PyUnicode_GET_LENGTH(__pyx_mstate_global->__pyx_n_u_real); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(2, 723, __pyx_L1_error) - __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_v_name, __pyx_t_7, 0, NULL, NULL, NULL, 1, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 723, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_2); - __pyx_t_2 = 0; - - } - - __Pyx_XDECREF(__pyx_r); - - __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 726, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_local); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 123, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_name, __pyx_v_name) < (0)) __PYX_ERR(2, 726, __pyx_L1_error) - - __pyx_t_4 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_get_flags); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 727, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_11 = __Pyx_PyLong_From_TA_OutputFlags(__pyx_v_info->flags); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 727, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_TA_OUTPUT_FLAGS); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 727, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - __pyx_t_6 = 1; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_3 = 1; #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); + if (unlikely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); assert(__pyx_t_4); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_3, __pyx__function); - __pyx_t_6 = 0; + __Pyx_DECREF_SET(__pyx_t_2, __pyx__function); + __pyx_t_3 = 0; } #endif { - PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_11, __pyx_t_12}; - __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_6, (3-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_2, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 727, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 123, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); } - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_flags, __pyx_t_5) < (0)) __PYX_ERR(2, 726, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_r = __pyx_t_2; - __pyx_t_2 = 0; - goto __pyx_L0; + if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__localdata, __pyx_t_1) < (0)) __PYX_ERR(2, 123, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_set_function_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 126, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyDict_Copy(__pyx_v_kwargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 126, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_v_args, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 126, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_func_object, __pyx_v_func_object) < (0)) __PYX_ERR(2, 127, __pyx_L1_error) /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_11); - __Pyx_XDECREF(__pyx_t_12); - __Pyx_AddTraceback("talib._ta_lib._ta_getOutputParameterInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.Function.__init__", __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; @@ -48910,23 +49219,23 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_360_ta_getOutputParameterInfo(CYTHON_U /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_363_get_defaults_and_docs(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_3__local(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_362_get_defaults_and_docs, "_get_defaults_and_docs(func_info)\n\nReturns a tuple with two outputs: defaults, a dict of parameter defaults,\nand documentation, a formatted docstring for the function.\n.. Note: func_info should come from Function.info, *not* _ta_getFuncInfo."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_363_get_defaults_and_docs = {"_get_defaults_and_docs", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_363_get_defaults_and_docs, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_362_get_defaults_and_docs}; -static PyObject *__pyx_pw_5talib_7_ta_lib_363_get_defaults_and_docs(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_2__local, "Function.__local(self)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_3__local = {"__local", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_3__local, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_2__local}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_3__local(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_func_info = 0; + PyObject *__pyx_v_self = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -48937,7 +49246,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("_get_defaults_and_docs (wrapper)", 0); + __Pyx_RefNannySetupContext("__local (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -48947,45 +49256,45 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_func_info,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 730, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 129, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 730, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 129, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_get_defaults_and_docs", 0) < (0)) __PYX_ERR(2, 730, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__local", 0) < (0)) __PYX_ERR(2, 129, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_get_defaults_and_docs", 1, 1, 1, i); __PYX_ERR(2, 730, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__local", 1, 1, 1, i); __PYX_ERR(2, 129, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 730, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 129, __pyx_L3_error) } - __pyx_v_func_info = values[0]; + __pyx_v_self = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_get_defaults_and_docs", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 730, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__local", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 129, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib._get_defaults_and_docs", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.Function.__local", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_362_get_defaults_and_docs(__pyx_self, __pyx_v_func_info); + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_2__local(__pyx_self, __pyx_v_self); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -48995,657 +49304,548 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_362_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; +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_2__local(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { + PyObject *__pyx_v_local = NULL; + PyObject *__pyx_v_i = NULL; + PyObject *__pyx_v_info = NULL; PyObject *__pyx_v_input_name = NULL; - PyObject *__pyx_v_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_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; + int __pyx_t_2; int __pyx_t_3; - Py_ssize_t __pyx_t_4; - PyObject *(*__pyx_t_5)(PyObject *); - int __pyx_t_6; - int __pyx_t_7; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + size_t __pyx_t_6; + PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9[4]; - PyObject *__pyx_t_10 = NULL; - PyObject *__pyx_t_11[5]; - PyObject *__pyx_t_12 = NULL; + PyObject *(*__pyx_t_9)(PyObject *); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("_get_defaults_and_docs", 0); - - __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 736, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_defaults = ((PyObject*)__pyx_t_1); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("__local", 0); - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_func_info, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 737, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__localdata); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 737, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_1) != (0)) __PYX_ERR(2, 737, __pyx_L1_error); - __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u__6); - __Pyx_GIVEREF(__pyx_mstate_global->__pyx_kp_u__6); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_kp_u__6) != (0)) __PYX_ERR(2, 737, __pyx_L1_error); + __pyx_v_local = __pyx_t_1; __pyx_t_1 = 0; - __pyx_v_func_line = ((PyObject*)__pyx_t_2); - __pyx_t_2 = 0; - - __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 738, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_input_arrays_2); - __Pyx_GIVEREF(__pyx_mstate_global->__pyx_kp_u_input_arrays_2); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_mstate_global->__pyx_kp_u_input_arrays_2) != (0)) __PYX_ERR(2, 738, __pyx_L1_error); - __pyx_v_func_args = ((PyObject*)__pyx_t_2); - __pyx_t_2 = 0; - __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 739, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_v_docs = ((PyObject*)__pyx_t_2); - __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_HasAttr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(2, 132, __pyx_L1_error) + __pyx_t_3 = (!__pyx_t_2); + if (__pyx_t_3) { - __pyx_t_2 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_display_name_s_group_s, __pyx_v_func_info); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 740, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_t_2); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 740, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info, Py_None) < (0)) __PYX_ERR(2, 133, __pyx_L1_error) - __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_func_info, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 742, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_v_input_names = __pyx_t_2; - __pyx_t_2 = 0; + __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 134, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays, __pyx_t_1) < (0)) __PYX_ERR(2, 134, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_mstate_global->__pyx_kp_u_Inputs); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 743, __pyx_L1_error) + __pyx_t_4 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_OrderedDict); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 137, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5); + assert(__pyx_t_4); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_5, __pyx__function); + __pyx_t_6 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 137, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names, __pyx_t_1) < (0)) __PYX_ERR(2, 137, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (likely(PyList_CheckExact(__pyx_v_input_names)) || PyTuple_CheckExact(__pyx_v_input_names)) { - __pyx_t_2 = __pyx_v_input_names; __Pyx_INCREF(__pyx_t_2); - __pyx_t_4 = 0; __pyx_t_5 = NULL; - } else { - __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_input_names); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 744, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 744, __pyx_L1_error) - } - for (;;) { - if (likely(!__pyx_t_5)) { - if (likely(PyList_CheckExact(__pyx_t_2))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 744, __pyx_L1_error) - #endif - if (__pyx_t_4 >= __pyx_temp) break; - } - __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_2, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_4; - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 744, __pyx_L1_error) - #endif - if (__pyx_t_4 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4)); - #else - __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_4); - #endif - ++__pyx_t_4; - } - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 744, __pyx_L1_error) - } else { - __pyx_t_1 = __pyx_t_5(__pyx_t_2); - if (unlikely(!__pyx_t_1)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 744, __pyx_L1_error) - PyErr_Clear(); - } - break; - } + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_OrderedDict); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 138, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_5); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_6 = 0; } - __Pyx_GOTREF(__pyx_t_1); - __Pyx_XDECREF_SET(__pyx_v_input_name, __pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_input_names, __pyx_v_input_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 745, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_6 = PyList_Check(__pyx_v_value); - __pyx_t_7 = (!__pyx_t_6); - if (__pyx_t_7) { - - __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_any_ndarray); - __Pyx_DECREF_SET(__pyx_v_value, __pyx_mstate_global->__pyx_kp_u_any_ndarray); - + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 138, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); } - - __pyx_t_1 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_input_name), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 748, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_8 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_value), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 748, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_9[0] = __pyx_mstate_global->__pyx_kp_u__7; - __pyx_t_9[1] = __pyx_t_1; - __pyx_t_9[2] = __pyx_mstate_global->__pyx_kp_u_; - __pyx_t_9[3] = __pyx_t_8; - __pyx_t_10 = __Pyx_PyUnicode_Join(__pyx_t_9, 4, 4 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8)); - if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 748, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs, __pyx_t_1) < (0)) __PYX_ERR(2, 138, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_t_10); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 748, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_func_info, __pyx_mstate_global->__pyx_n_u_parameters); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 750, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_v_params = __pyx_t_2; - __pyx_t_2 = 0; - - __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_params); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 751, __pyx_L1_error) - if (__pyx_t_7) { - __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_mstate_global->__pyx_kp_u_Parameters); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 752, __pyx_L1_error) + __pyx_t_4 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_OrderedDict); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 139, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5); + assert(__pyx_t_4); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_5, __pyx__function); + __pyx_t_6 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 139, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs, __pyx_t_1) < (0)) __PYX_ERR(2, 139, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - } + if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs_valid, Py_False) < (0)) __PYX_ERR(2, 140, __pyx_L1_error) - if (likely(PyList_CheckExact(__pyx_v_params)) || PyTuple_CheckExact(__pyx_v_params)) { - __pyx_t_2 = __pyx_v_params; __Pyx_INCREF(__pyx_t_2); - __pyx_t_4 = 0; __pyx_t_5 = NULL; - } else { - __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_params); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 753, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 753, __pyx_L1_error) - } - for (;;) { - if (likely(!__pyx_t_5)) { - if (likely(PyList_CheckExact(__pyx_t_2))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 753, __pyx_L1_error) - #endif - if (__pyx_t_4 >= __pyx_temp) break; - } - __pyx_t_10 = __Pyx_PyList_GetItemRefFast(__pyx_t_2, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_4; - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 753, __pyx_L1_error) - #endif - if (__pyx_t_4 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_10 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4)); - #else - __pyx_t_10 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_4); - #endif - ++__pyx_t_4; - } - if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 753, __pyx_L1_error) - } else { - __pyx_t_10 = __pyx_t_5(__pyx_t_2); - if (unlikely(!__pyx_t_10)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 753, __pyx_L1_error) - PyErr_Clear(); - } - break; - } + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ta_getFuncInfo); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 143, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 143, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_6 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_5); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_6 = 0; } - __Pyx_GOTREF(__pyx_t_10); - __Pyx_XDECREF_SET(__pyx_v_param, __pyx_t_10); - __pyx_t_10 = 0; - - __pyx_t_10 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_param), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 754, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_params, __pyx_v_param); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 754, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_1 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_8), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 754, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_9[0] = __pyx_mstate_global->__pyx_kp_u__7; - __pyx_t_9[1] = __pyx_t_10; - __pyx_t_9[2] = __pyx_mstate_global->__pyx_kp_u_; - __pyx_t_9[3] = __pyx_t_1; - __pyx_t_8 = __Pyx_PyUnicode_Join(__pyx_t_9, 4, 4 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_10) + 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_10) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1)); - if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 754, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 143, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info, __pyx_t_1) < (0)) __PYX_ERR(2, 143, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_t_8); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 754, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_param), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 755, __pyx_L1_error) + __pyx_t_4 = NULL; + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 146, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_params, __pyx_v_param); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 755, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_10 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_1), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 755, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_11[0] = __pyx_mstate_global->__pyx_kp_u__8; - __pyx_t_11[1] = __pyx_t_8; - __pyx_t_11[2] = __pyx_mstate_global->__pyx_kp_u__9; - __pyx_t_11[3] = __pyx_t_10; - __pyx_t_11[4] = __pyx_mstate_global->__pyx_kp_u__10; - __pyx_t_1 = __Pyx_PyUnicode_Join(__pyx_t_11, 5, 1 * 3 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_10), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_10)); - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 755, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_func_args, __pyx_t_1); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 755, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_params, __pyx_v_param); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 756, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (unlikely((PyDict_SetItem(__pyx_v_defaults, __pyx_v_param, __pyx_t_1) < 0))) __PYX_ERR(2, 756, __pyx_L1_error) + __pyx_t_5 = __pyx_t_8; + __Pyx_INCREF(__pyx_t_5); + __pyx_t_6 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_mstate_global->__pyx_n_u_num_inputs}; + __pyx_t_7 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_pop, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 146, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + } + __pyx_t_6 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_7}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(&PyRange_Type), __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 146, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 146, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_9 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 146, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_v_param, __pyx_mstate_global->__pyx_n_u_matype, Py_EQ)); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 757, __pyx_L1_error) - if (__pyx_t_7) { - - __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_docs, -1L, long, 1, __Pyx_PyLong_From_long, 1, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 758, __pyx_L1_error) + for (;;) { + { + __pyx_t_1 = __pyx_t_9(__pyx_t_7); + if (unlikely(!__pyx_t_1)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 146, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } __Pyx_GOTREF(__pyx_t_1); - __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 758, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_params, __pyx_v_param); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 758, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_t_8); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 758, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_s_3, __pyx_t_12); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 758, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = PyList_New(2); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 758, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyList_SET_ITEM(__pyx_t_12, 0, __pyx_t_1) != (0)) __PYX_ERR(2, 758, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_8); - if (__Pyx_PyList_SET_ITEM(__pyx_t_12, 1, __pyx_t_8) != (0)) __PYX_ERR(2, 758, __pyx_L1_error); + __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_1); __pyx_t_1 = 0; - __pyx_t_8 = 0; - __pyx_t_8 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__11, __pyx_t_12); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 758, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (unlikely((__Pyx_SetItemInt(__pyx_v_docs, -1L, __pyx_t_8, long, 1, __Pyx_PyLong_From_long, 1, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference) < 0))) __PYX_ERR(2, 758, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - } + __pyx_t_4 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_ta_getInputParameterInfo); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 147, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 147, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_8))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_8); + assert(__pyx_t_4); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_8); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_8, __pyx__function); + __pyx_t_6 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_5, __pyx_v_i}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_6, (3-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 147, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __Pyx_XDECREF_SET(__pyx_v_info, __pyx_t_1); + __pyx_t_1 = 0; - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_info, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 148, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_XDECREF_SET(__pyx_v_input_name, __pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_func_info, __pyx_mstate_global->__pyx_n_u_output_names); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 760, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_v_outputs = __pyx_t_2; - __pyx_t_2 = 0; + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_info, __pyx_mstate_global->__pyx_n_u_price_series); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 149, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = (__pyx_t_1 == Py_None); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_3) { - __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_mstate_global->__pyx_kp_u_Outputs); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 761, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_INPUT_PRICE_SERIES_DEFAULTS); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 150, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_input_name); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 150, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely((PyObject_SetItem(__pyx_v_info, __pyx_mstate_global->__pyx_n_u_price_series, __pyx_t_8) < 0))) __PYX_ERR(2, 150, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (likely(PyList_CheckExact(__pyx_v_outputs)) || PyTuple_CheckExact(__pyx_v_outputs)) { - __pyx_t_2 = __pyx_v_outputs; __Pyx_INCREF(__pyx_t_2); - __pyx_t_4 = 0; - __pyx_t_5 = NULL; - } else { - __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_outputs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 762, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 762, __pyx_L1_error) - } - for (;;) { - if (likely(!__pyx_t_5)) { - if (likely(PyList_CheckExact(__pyx_t_2))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 762, __pyx_L1_error) - #endif - if (__pyx_t_4 >= __pyx_temp) break; - } - __pyx_t_8 = __Pyx_PyList_GetItemRefFast(__pyx_t_2, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_4; - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 762, __pyx_L1_error) - #endif - if (__pyx_t_4 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_8 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4)); - #else - __pyx_t_8 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_4); - #endif - ++__pyx_t_4; - } - if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 762, __pyx_L1_error) - } else { - __pyx_t_8 = __pyx_t_5(__pyx_t_2); - if (unlikely(!__pyx_t_8)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 762, __pyx_L1_error) - PyErr_Clear(); - } - break; } - } - __Pyx_GOTREF(__pyx_t_8); - __Pyx_XDECREF_SET(__pyx_v_output, __pyx_t_8); - __pyx_t_8 = 0; - - __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_v_output, __pyx_mstate_global->__pyx_n_u_integer, Py_EQ)); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 763, __pyx_L1_error) - if (__pyx_t_7) { - __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_integer_values_are_100_0_or_100); - __Pyx_DECREF_SET(__pyx_v_output, __pyx_mstate_global->__pyx_kp_u_integer_values_are_100_0_or_100); + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 151, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (unlikely((PyObject_SetItem(__pyx_t_8, __pyx_v_input_name, __pyx_v_info) < 0))) __PYX_ERR(2, 151, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_8 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_s_4, __pyx_v_output); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 765, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 152, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 152, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_t_8); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 765, __pyx_L1_error) + if (unlikely((PyObject_SetItem(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_input_names, __pyx_t_7) < 0))) __PYX_ERR(2, 152, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_8 = NULL; + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 155, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __pyx_t_4; + __Pyx_INCREF(__pyx_t_5); + __pyx_t_6 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_mstate_global->__pyx_n_u_num_opt_inputs}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_pop, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 155, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_6 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_1}; + __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)(&PyRange_Type), __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 155, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + } + __pyx_t_1 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 155, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_9 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 155, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + for (;;) { + { + __pyx_t_7 = __pyx_t_9(__pyx_t_1); + if (unlikely(!__pyx_t_7)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 155, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_7); + __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_7); + __pyx_t_7 = 0; - __pyx_t_2 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__3, __pyx_v_func_args); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 767, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_func_line, __pyx_t_2); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 767, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_8 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ta_getOptInputParameterInfo); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 156, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 156, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_8); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_6 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_8, __pyx_t_5, __pyx_v_i}; + __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (3-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 156, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + } + __Pyx_XDECREF_SET(__pyx_v_info, __pyx_t_7); + __pyx_t_7 = 0; - __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_func_line, __pyx_mstate_global->__pyx_kp_u__12); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 768, __pyx_L1_error) - - __pyx_t_2 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__2, __pyx_v_func_line); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 769, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PyList_Insert(__pyx_v_docs, 0, __pyx_t_2); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 769, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - __pyx_t_2 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__13, __pyx_v_docs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 770, __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(2, 771, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_INCREF(__pyx_v_defaults); - __Pyx_GIVEREF(__pyx_v_defaults); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_defaults) != (0)) __PYX_ERR(2, 771, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_documentation); - __Pyx_GIVEREF(__pyx_v_documentation); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_documentation) != (0)) __PYX_ERR(2, 771, __pyx_L1_error); - __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_10); - __Pyx_XDECREF(__pyx_t_12); - __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 const *__pyx_f_5talib_7_ta_lib___ta_getFuncHandle(char *__pyx_v_function_name) { - TA_FuncHandle const *__pyx_v_handle; - TA_FuncHandle const *__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_mstate_global->__pyx_n_u_TA_GetFuncHandle, TA_GetFuncHandle(__pyx_v_function_name, (&__pyx_v_handle)), 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 787, __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_AddTraceback("talib._ta_lib.__ta_getFuncHandle", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - - -static TA_ParamHolder *__pyx_f_5talib_7_ta_lib___ta_paramHolderAlloc(char *__pyx_v_function_name) { - TA_ParamHolder *__pyx_v_holder; - TA_RetCode __pyx_v_retCode; - TA_ParamHolder *__pyx_r; - __Pyx_RefNannyDeclarations - TA_FuncHandle const *__pyx_t_1; - PyObject *__pyx_t_2 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__ta_paramHolderAlloc", 0); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib___ta_getFuncHandle(__pyx_v_function_name); if (unlikely(__pyx_t_1 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(2, 795, __pyx_L1_error) - __pyx_v_retCode = TA_ParamHolderAlloc(__pyx_t_1, (&__pyx_v_holder)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ParamHolderAlloc, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 796, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - __pyx_r = __pyx_v_holder; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.__ta_paramHolderAlloc", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - - -static int __pyx_f_5talib_7_ta_lib___ta_paramHolderFree(TA_ParamHolder *__pyx_v_params) { - 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_mstate_global->__pyx_n_u_TA_ParamHolderFree, TA_ParamHolderFree(__pyx_v_params), 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 804, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - - /* function exit code */ - __pyx_r = 0; - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.__ta_paramHolderFree", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = -1; - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - - -static int __pyx_f_5talib_7_ta_lib___ta_setOptInputParamInteger(TA_ParamHolder *__pyx_v_holder, int __pyx_v_idx, int __pyx_v_value) { - TA_RetCode __pyx_v_retCode; - int __pyx_r; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__ta_setOptInputParamInteger", 0); - - __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_mstate_global->__pyx_n_u_TA_SetOptInputParamInteger, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 808, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_7 = __Pyx_PyObject_Dict_GetItem(__pyx_v_info, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 157, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_XDECREF_SET(__pyx_v_param_name, __pyx_t_7); + __pyx_t_7 = 0; + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 158, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + if (unlikely((PyObject_SetItem(__pyx_t_7, __pyx_v_param_name, __pyx_v_info) < 0))) __PYX_ERR(2, 158, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* function exit code */ - __pyx_r = 0; - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.__ta_setOptInputParamInteger", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = -1; - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_parameters); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 159, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 159, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + if (unlikely((PyObject_SetItem(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_parameters, __pyx_t_1) < 0))) __PYX_ERR(2, 159, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -static int __pyx_f_5talib_7_ta_lib___ta_setOptInputParamReal(TA_ParamHolder *__pyx_v_holder, int __pyx_v_idx, double __pyx_v_value) { - TA_RetCode __pyx_v_retCode; - int __pyx_r; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__ta_setOptInputParamReal", 0); + __pyx_t_7 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_OrderedDict); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 162, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_7); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_6 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_7, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 162, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 162, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (unlikely((PyObject_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_output_flags, __pyx_t_1) < 0))) __PYX_ERR(2, 162, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_SetOptInputParamReal(__pyx_v_holder, __pyx_v_idx, __pyx_v_value); + __pyx_t_4 = NULL; + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 163, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_5 = __pyx_t_8; + __Pyx_INCREF(__pyx_t_5); + __pyx_t_6 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_mstate_global->__pyx_n_u_num_outputs}; + __pyx_t_7 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_pop, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 163, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + } + __pyx_t_6 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_7}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(&PyRange_Type), __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 163, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 163, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_9 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 163, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + for (;;) { + { + __pyx_t_1 = __pyx_t_9(__pyx_t_7); + if (unlikely(!__pyx_t_1)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 163, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_1); + __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SetOptInputParamReal, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 812, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_4 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_ta_getOutputParameterInfo); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 164, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 164, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_8))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_8); + assert(__pyx_t_4); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_8); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_8, __pyx__function); + __pyx_t_6 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_5, __pyx_v_i}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_6, (3-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 164, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __Pyx_XDECREF_SET(__pyx_v_info, __pyx_t_1); + __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_info, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 165, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_XDECREF_SET(__pyx_v_output_name, __pyx_t_1); + __pyx_t_1 = 0; - /* function exit code */ - __pyx_r = 0; - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.__ta_setOptInputParamReal", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = -1; - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_info, __pyx_mstate_global->__pyx_n_u_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 166, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 166, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_output_flags); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 166, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely((PyObject_SetItem(__pyx_t_5, __pyx_v_output_name, __pyx_t_1) < 0))) __PYX_ERR(2, 166, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 167, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (unlikely((PyObject_SetItem(__pyx_t_1, __pyx_v_output_name, Py_None) < 0))) __PYX_ERR(2, 167, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -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_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_v_retCode = TA_GetLookback(__pyx_v_holder, (&__pyx_v_lookback)); + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_output_names); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 168, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 168, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (unlikely((PyObject_SetItem(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_output_names, __pyx_t_7) < 0))) __PYX_ERR(2, 168, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_GetLookback, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 817, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } - __pyx_r = __pyx_v_lookback; + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_local); + __pyx_r = __pyx_v_local; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.__ta_getLookback", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = -1; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("talib._ta_lib.Function.__local", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF(__pyx_v_local); + __Pyx_XDECREF(__pyx_v_i); + __Pyx_XDECREF(__pyx_v_info); + __Pyx_XDECREF(__pyx_v_input_name); + __Pyx_XDECREF(__pyx_v_param_name); + __Pyx_XDECREF(__pyx_v_output_name); + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_365stream_ACCBANDS(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_5info(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_364stream_ACCBANDS, "stream_ACCBANDS(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nACCBANDS(high, low, close[, timeperiod=?])\n\nAcceleration Bands (Overlap Studies)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n timeperiod: 20\nOutputs:\n upperband\n middleband\n lowerband"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_365stream_ACCBANDS = {"stream_ACCBANDS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_365stream_ACCBANDS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_364stream_ACCBANDS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_365stream_ACCBANDS(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_4info, "Function.info(self)\n\nReturns a copy of the function's info dict."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_5info = {"info", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_5info, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_4info}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_5info(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_self = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_ACCBANDS (wrapper)", 0); + __Pyx_RefNannySetupContext("info (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -49655,193 +49855,98 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 9, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 171, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 9, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 9, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 9, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 9, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 171, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_ACCBANDS", 0) < (0)) __PYX_ERR(5, 9, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_ACCBANDS", 0, 3, 4, i); __PYX_ERR(5, 9, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 9, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 9, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 9, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 9, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "info", 0) < (0)) __PYX_ERR(2, 171, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("info", 1, 1, 1, i); __PYX_ERR(2, 171, __pyx_L3_error) } } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 11, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 171, __pyx_L3_error) } + __pyx_v_self = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_ACCBANDS", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 9, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("info", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 171, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_ACCBANDS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.Function.info", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 11, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 11, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 11, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_364stream_ACCBANDS(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_4info(__pyx_self, __pyx_v_self); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_364stream_ACCBANDS(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_outrealupperband; - double __pyx_v_outrealmiddleband; - double __pyx_v_outreallowerband; +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; - npy_intp __pyx_t_2; + PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; + size_t __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_ACCBANDS", 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(5, 36, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 38, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 40, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 42, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - - __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_ACCBANDS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outrealupperband), (&__pyx_v_outrealmiddleband), (&__pyx_v_outreallowerband)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACCBANDS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 47, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("info", 0); __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outrealupperband); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 48, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outrealmiddleband); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 48, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 176, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outreallowerband); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 48, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 176, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 48, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 48, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3) != (0)) __PYX_ERR(5, 48, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4) != (0)) __PYX_ERR(5, 48, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_3 = 0; - __pyx_t_4 = 0; - __pyx_r = __pyx_t_5; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_2 = __pyx_t_4; + __Pyx_INCREF(__pyx_t_2); __pyx_t_5 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_copy, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 176, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __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_AddTraceback("talib._ta_lib.stream_ACCBANDS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.Function.info", __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; @@ -49849,23 +49954,23 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_364stream_ACCBANDS(CYTHON_UNUSED PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_367stream_ACOS(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_7function_flags(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_366stream_ACOS, "stream_ACOS(ndarray real)\n\nACOS(real)\n\nVector Trigonometric ACos (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_367stream_ACOS = {"stream_ACOS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_367stream_ACOS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_366stream_ACOS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_367stream_ACOS(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_6function_flags, "Function.function_flags(self)\n\nReturns any function flags defined for this indicator function."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_7function_flags = {"function_flags", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_7function_flags, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_6function_flags}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_7function_flags(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyObject *__pyx_v_self = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -49876,7 +49981,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_ACOS (wrapper)", 0); + __Pyx_RefNannySetupContext("function_flags (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -49886,100 +49991,73 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 50, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 178, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 50, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 178, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_ACOS", 0) < (0)) __PYX_ERR(5, 50, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "function_flags", 0) < (0)) __PYX_ERR(2, 178, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_ACOS", 1, 1, 1, i); __PYX_ERR(5, 50, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("function_flags", 1, 1, 1, i); __PYX_ERR(2, 178, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 50, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 178, __pyx_L3_error) } - __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_self = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_ACOS", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 50, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("function_flags", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 178, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_ACOS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.Function.function_flags", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 52, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_366stream_ACOS(__pyx_self, __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_6function_flags(__pyx_self, __pyx_v_self); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_366stream_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; +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("stream_ACOS", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("function_flags", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 69, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[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_mstate_global->__pyx_n_u_TA_ACOS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 74, __pyx_L1_error) + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 183, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 183, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 75, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_function_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 183, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; @@ -49988,10 +50066,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_366stream_ACOS(CYTHON_UNUSED PyObject /* 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_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.Function.function_flags", __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; @@ -49999,37 +50077,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_366stream_ACOS(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_369stream_AD(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_9output_flags(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_368stream_AD, "stream_AD(ndarray high, ndarray low, ndarray close, ndarray volume)\n\nAD(high, low, close, volume)\n\nChaikin A/D Line (Volume Indicators)\n\nInputs:\n prices: ['high', 'low', 'close', 'volume']\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_369stream_AD = {"stream_AD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_369stream_AD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_368stream_AD}; -static PyObject *__pyx_pw_5talib_7_ta_lib_369stream_AD(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_8output_flags, "Function.output_flags(self)\n\nReturns the flags for each output for this indicator function."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_9output_flags = {"output_flags", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_9output_flags, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_8output_flags}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_9output_flags(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - PyArrayObject *__pyx_v_volume = 0; + PyObject *__pyx_v_self = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_AD (wrapper)", 0); + __Pyx_RefNannySetupContext("output_flags (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -50039,153 +50114,87 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 77, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 185, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 77, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 77, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 77, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 77, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 185, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_AD", 0) < (0)) __PYX_ERR(5, 77, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_AD", 1, 4, 4, i); __PYX_ERR(5, 77, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "output_flags", 0) < (0)) __PYX_ERR(2, 185, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("output_flags", 1, 1, 1, i); __PYX_ERR(2, 185, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 77, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 77, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 77, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 77, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 185, __pyx_L3_error) } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - __pyx_v_volume = ((PyArrayObject *)values[3]); + __pyx_v_self = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_AD", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 77, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("output_flags", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 185, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_AD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.Function.output_flags", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 79, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 79, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 79, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 79, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_368stream_AD(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_8output_flags(__pyx_self, __pyx_v_self); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_368stream_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; +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; - npy_intp __pyx_t_2; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + size_t __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(5, 99, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 101, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 103, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 105, __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_f_5numpy_7ndarray_4data_data(__pyx_v_volume)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 107, __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_mstate_global->__pyx_n_u_TA_AD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 110, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("output_flags", 0); __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 111, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 190, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 190, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_output_flags); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 190, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = __pyx_t_3; + __Pyx_INCREF(__pyx_t_2); + __pyx_t_5 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_copy, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 190, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; @@ -50194,13 +50203,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_368stream_AD(CYTHON_UNUSED PyObject *_ /* 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_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("talib._ta_lib.Function.output_flags", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_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; @@ -50208,35 +50216,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_368stream_AD(CYTHON_UNUSED PyObject *_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_371stream_ADD(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_11get_input_names(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_370stream_ADD, "stream_ADD(ndarray real0, ndarray real1)\n\nADD(real0, real1)\n\nVector Arithmetic Add (Math Operators)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_371stream_ADD = {"stream_ADD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_371stream_ADD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_370stream_ADD}; -static PyObject *__pyx_pw_5talib_7_ta_lib_371stream_ADD(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_10get_input_names, "Function.get_input_names(self)\n\nReturns the dict of input price series names that specifies which\nof the ndarrays in input_arrays will be used to calculate the function."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_11get_input_names = {"get_input_names", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_11get_input_names, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_10get_input_names}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_11get_input_names(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real0 = 0; - PyArrayObject *__pyx_v_real1 = 0; + PyObject *__pyx_v_self = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_ADD (wrapper)", 0); + __Pyx_RefNannySetupContext("get_input_names (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -50246,132 +50253,188 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 113, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 192, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 113, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 113, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 192, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_ADD", 0) < (0)) __PYX_ERR(5, 113, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_ADD", 1, 2, 2, i); __PYX_ERR(5, 113, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "get_input_names", 0) < (0)) __PYX_ERR(2, 192, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("get_input_names", 1, 1, 1, i); __PYX_ERR(2, 192, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 113, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 113, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 192, __pyx_L3_error) } - __pyx_v_real0 = ((PyArrayObject *)values[0]); - __pyx_v_real1 = ((PyArrayObject *)values[1]); + __pyx_v_self = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_ADD", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 113, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("get_input_names", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 192, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_ADD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.Function.get_input_names", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(5, 115, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(5, 115, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_370stream_ADD(__pyx_self, __pyx_v_real0, __pyx_v_real1); + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_10get_input_names(__pyx_self, __pyx_v_self); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_370stream_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; +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_10get_input_names(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { + PyObject *__pyx_v_local = NULL; + PyObject *__pyx_v_ret = NULL; + PyObject *__pyx_v_input_name = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + Py_ssize_t __pyx_t_5; + PyObject *(*__pyx_t_6)(PyObject *); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_ADD", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real0); - __Pyx_INCREF((PyObject *)__pyx_v_real1); + __Pyx_RefNannySetupContext("get_input_names", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 134, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 197, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_local = __pyx_t_1; __pyx_t_1 = 0; - __pyx_v_real0_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 136, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_2 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_OrderedDict); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 198, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); + assert(__pyx_t_2); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_3, __pyx__function); + __pyx_t_4 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 198, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_v_ret = __pyx_t_1; __pyx_t_1 = 0; - __pyx_v_real1_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 138, __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_mstate_global->__pyx_n_u_TA_ADD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 141, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { + __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); + __pyx_t_5 = 0; + __pyx_t_6 = NULL; + } else { + __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 199, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_6 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 199, __pyx_L1_error) + } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + for (;;) { + if (likely(!__pyx_t_6)) { + if (likely(PyList_CheckExact(__pyx_t_3))) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 199, __pyx_L1_error) + #endif + if (__pyx_t_5 >= __pyx_temp) break; + } + __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_3, __pyx_t_5, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_5; + } else { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 199, __pyx_L1_error) + #endif + if (__pyx_t_5 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5)); + #else + __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_5); + #endif + ++__pyx_t_5; + } + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 199, __pyx_L1_error) + } else { + __pyx_t_1 = __pyx_t_6(__pyx_t_3); + if (unlikely(!__pyx_t_1)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 199, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_1); + __Pyx_XDECREF_SET(__pyx_v_input_name, __pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 200, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_input_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 200, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_price_series); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 200, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely((PyObject_SetItem(__pyx_v_ret, __pyx_v_input_name, __pyx_t_1) < 0))) __PYX_ERR(2, 200, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 142, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; + __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_AddTraceback("talib._ta_lib.stream_ADD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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((PyObject *)__pyx_v_real0); - __Pyx_XDECREF((PyObject *)__pyx_v_real1); + __Pyx_XDECREF(__pyx_v_local); + __Pyx_XDECREF(__pyx_v_ret); + __Pyx_XDECREF(__pyx_v_input_name); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -50379,39 +50442,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_370stream_ADD(CYTHON_UNUSED PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_373stream_ADOSC(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_13set_input_names(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_372stream_ADOSC, "stream_ADOSC(ndarray high, ndarray low, ndarray close, ndarray volume, int fastperiod=-0x80000000, int slowperiod=-0x80000000)\n\nADOSC(high, low, close, volume[, fastperiod=?, slowperiod=?])\n\nChaikin A/D Oscillator (Volume Indicators)\n\nInputs:\n prices: ['high', 'low', 'close', 'volume']\nParameters:\n fastperiod: 3\n slowperiod: 10\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_373stream_ADOSC = {"stream_ADOSC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_373stream_ADOSC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_372stream_ADOSC}; -static PyObject *__pyx_pw_5talib_7_ta_lib_373stream_ADOSC(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_12set_input_names, "Function.set_input_names(self, input_names)\n\nSets the input price series names to use."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_13set_input_names = {"set_input_names", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_13set_input_names, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_12set_input_names}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_13set_input_names(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - PyArrayObject *__pyx_v_volume = 0; - int __pyx_v_fastperiod; - int __pyx_v_slowperiod; + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_input_names = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[6] = {0,0,0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_ADOSC (wrapper)", 0); + __Pyx_RefNannySetupContext("set_input_names (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -50421,404 +50480,238 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_input_names,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 144, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 203, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 144, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 144, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 144, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 144, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 144, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 203, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 144, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 203, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_ADOSC", 0) < (0)) __PYX_ERR(5, 144, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_ADOSC", 0, 4, 6, i); __PYX_ERR(5, 144, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 144, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 144, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 144, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 144, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 144, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 144, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "set_input_names", 0) < (0)) __PYX_ERR(2, 203, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("set_input_names", 1, 2, 2, i); __PYX_ERR(2, 203, __pyx_L3_error) } } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - __pyx_v_volume = ((PyArrayObject *)values[3]); - if (values[4]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 146, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)((int)-2147483648)); - } - if (values[5]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 146, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_slowperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 203, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 203, __pyx_L3_error) } + __pyx_v_self = values[0]; + __pyx_v_input_names = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_ADOSC", 0, 4, 6, __pyx_nargs); __PYX_ERR(5, 144, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("set_input_names", 1, 2, 2, __pyx_nargs); __PYX_ERR(2, 203, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_ADOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.Function.set_input_names", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 146, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 146, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 146, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 146, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_372stream_ADOSC(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, __pyx_v_fastperiod, __pyx_v_slowperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_12set_input_names(__pyx_self, __pyx_v_self, __pyx_v_input_names); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_372stream_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; +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_12set_input_names(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_names) { + PyObject *__pyx_v_local = NULL; + PyObject *__pyx_v_input_name = NULL; + PyObject *__pyx_v_price_series = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + Py_ssize_t __pyx_t_4; + PyObject *(*__pyx_t_5)(PyObject *); + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *(*__pyx_t_9)(PyObject *); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("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(5, 169, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 171, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 173, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 175, __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_f_5numpy_7ndarray_4data_data(__pyx_v_volume)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 177, __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_mstate_global->__pyx_n_u_TA_ADOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 180, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("set_input_names", 0); - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 181, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 207, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; + __pyx_v_local = __pyx_t_1; __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_375stream_ADX(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_374stream_ADX, "stream_ADX(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nADX(high, low, close[, timeperiod=?])\n\nAverage Directional Movement Index (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_375stream_ADX = {"stream_ADX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_375stream_ADX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_374stream_ADX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_375stream_ADX(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_ADX (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_t_2 = __pyx_v_input_names; + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 183, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 183, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 183, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 183, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 183, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_ADX", 0) < (0)) __PYX_ERR(5, 183, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_ADX", 0, 3, 4, i); __PYX_ERR(5, 183, __pyx_L3_error) } + PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_items, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 208, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { + __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); + __pyx_t_4 = 0; + __pyx_t_5 = NULL; + } else { + __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 208, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 208, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + for (;;) { + if (likely(!__pyx_t_5)) { + if (likely(PyList_CheckExact(__pyx_t_2))) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 208, __pyx_L1_error) + #endif + if (__pyx_t_4 >= __pyx_temp) break; + } + __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_2, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_4; + } else { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 208, __pyx_L1_error) + #endif + if (__pyx_t_4 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4)); + #else + __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_4); + #endif + ++__pyx_t_4; } + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 208, __pyx_L1_error) } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 183, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 183, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 183, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 183, __pyx_L3_error) + __pyx_t_1 = __pyx_t_5(__pyx_t_2); + if (unlikely(!__pyx_t_1)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 208, __pyx_L1_error) + PyErr_Clear(); + } break; - default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 185, __pyx_L3_error) + __Pyx_GOTREF(__pyx_t_1); + if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { + PyObject* sequence = __pyx_t_1; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(2, 208, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); + __Pyx_INCREF(__pyx_t_6); + __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1); + __Pyx_INCREF(__pyx_t_7); + } else { + __pyx_t_6 = __Pyx_PyList_GetItemRefFast(sequence, 0, __Pyx_ReferenceSharing_SharedReference); + if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 208, __pyx_L1_error) + __Pyx_XGOTREF(__pyx_t_6); + __pyx_t_7 = __Pyx_PyList_GetItemRefFast(sequence, 1, __Pyx_ReferenceSharing_SharedReference); + if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 208, __pyx_L1_error) + __Pyx_XGOTREF(__pyx_t_7); + } + #else + __pyx_t_6 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 208, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 208, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + #endif + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + Py_ssize_t index = -1; + __pyx_t_8 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 208, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_9 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_8); + index = 0; __pyx_t_6 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_6)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + index = 1; __pyx_t_7 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_7)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 2) < (0)) __PYX_ERR(2, 208, __pyx_L1_error) + __pyx_t_9 = NULL; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + goto __pyx_L6_unpacking_done; + __pyx_L5_unpacking_failed:; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_9 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(2, 208, __pyx_L1_error) + __pyx_L6_unpacking_done:; } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_ADX", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 183, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 185, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 185, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 185, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_374stream_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; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_374stream_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(5, 206, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 208, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 210, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 212, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __Pyx_XDECREF_SET(__pyx_v_input_name, __pyx_t_6); + __pyx_t_6 = 0; + __Pyx_XDECREF_SET(__pyx_v_price_series, __pyx_t_7); + __pyx_t_7 = 0; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 209, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_input_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 209, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely((PyObject_SetItem(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_price_series, __pyx_v_price_series) < 0))) __PYX_ERR(2, 209, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_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_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 210, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 210, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (unlikely((PyObject_SetItem(__pyx_t_1, __pyx_v_input_name, __pyx_v_price_series) < 0))) __PYX_ERR(2, 210, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 215, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 216, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; + if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs_valid, Py_False) < (0)) __PYX_ERR(2, 211, __pyx_L1_error) /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_ADX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("talib._ta_lib.Function.set_input_names", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF(__pyx_v_local); + __Pyx_XDECREF(__pyx_v_input_name); + __Pyx_XDECREF(__pyx_v_price_series); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -50826,37 +50719,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_374stream_ADX(CYTHON_UNUSED PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_377stream_ADXR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_15get_input_arrays(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_376stream_ADXR, "stream_ADXR(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nADXR(high, low, close[, timeperiod=?])\n\nAverage Directional Movement Index Rating (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_377stream_ADXR = {"stream_ADXR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_377stream_ADXR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_376stream_ADXR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_377stream_ADXR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_14get_input_arrays, "Function.get_input_arrays(self)\n\nReturns a copy of the dict of input arrays in use."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_15get_input_arrays = {"get_input_arrays", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_15get_input_arrays, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_14get_input_arrays}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_15get_input_arrays(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_self = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_ADXR (wrapper)", 0); + __Pyx_RefNannySetupContext("get_input_arrays (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -50866,166 +50756,146 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 218, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 215, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 218, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 218, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 218, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 218, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 215, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_ADXR", 0) < (0)) __PYX_ERR(5, 218, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_ADXR", 0, 3, 4, i); __PYX_ERR(5, 218, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 218, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 218, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 218, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 218, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "get_input_arrays", 0) < (0)) __PYX_ERR(2, 215, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("get_input_arrays", 1, 1, 1, i); __PYX_ERR(2, 215, __pyx_L3_error) } } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 220, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 215, __pyx_L3_error) } + __pyx_v_self = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_ADXR", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 218, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("get_input_arrays", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 215, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_ADXR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.Function.get_input_arrays", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 220, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 220, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 220, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_376stream_ADXR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_14get_input_arrays(__pyx_self, __pyx_v_self); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_376stream_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; +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_14get_input_arrays(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { + PyObject *__pyx_v_local = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + int __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + size_t __pyx_t_6; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_ADXR", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("get_input_arrays", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 241, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_local = __pyx_t_1; __pyx_t_1 = 0; - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 243, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 220, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + __pyx_t_3 = (__pyx_t_1 != Py_None); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L4_bool_binop_done; + } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 245, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 221, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 247, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 221, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = PyObject_IsInstance(__pyx_t_1, __pyx_t_4); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 221, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = __pyx_t_3; + __pyx_L4_bool_binop_done:; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + if (__pyx_t_2) { - __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_XDECREF(__pyx_r); + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 222, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_1 = __pyx_t_5; + __Pyx_INCREF(__pyx_t_1); + __pyx_t_6 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_1, NULL}; + __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_clone, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 222, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADXR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 250, __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(5, 251, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; + /*else*/ { + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 224, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = __pyx_t_1; + __Pyx_INCREF(__pyx_t_5); + __pyx_t_6 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL}; + __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_copy, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 224, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } + __pyx_r = __pyx_t_4; + __pyx_t_4 = 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_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.Function.get_input_arrays", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF(__pyx_v_local); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -51033,37 +50903,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_376stream_ADXR(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_379stream_APO(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_17set_input_arrays(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_378stream_APO, "stream_APO(ndarray real, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int matype=0)\n\nAPO(real[, fastperiod=?, slowperiod=?, matype=?])\n\nAbsolute Price Oscillator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastperiod: 12\n slowperiod: 26\n matype: 0 (Simple Moving Average)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_379stream_APO = {"stream_APO", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_379stream_APO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_378stream_APO}; -static PyObject *__pyx_pw_5talib_7_ta_lib_379stream_APO(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_16set_input_arrays, "Function.set_input_arrays(self, input_arrays)\n\nSets the dict of input_arrays to use. Returns True/False for\nsubclasses:\n\nIf input_arrays is a dict with the keys open, high, low, close and\nvolume, it is assigned as the input_array to use and this function\nreturns True, returning False otherwise. If you implement your own\ndata type and wish to subclass Function, you should wrap this function\nwith an if-statement:\n\nclass CustomFunction(Function):\n def __init__(self, function_name):\n Function.__init__(self, function_name)\n\n def set_input_arrays(self, input_data):\n if Function.set_input_arrays(self, input_data):\n return True\n elif isinstance(input_data, some_module.CustomDataType):\n input_arrays = Function.get_input_arrays(self)\n # convert input_data to input_arrays and then call the super\n Function.set_input_arrays(self, input_arrays)\n return True\n return False"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_17set_input_arrays = {"set_input_arrays", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_17set_input_arrays, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_16set_input_arrays}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_17set_input_arrays(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_fastperiod; - int __pyx_v_slowperiod; - int __pyx_v_matype; + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_input_arrays = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_APO (wrapper)", 0); + __Pyx_RefNannySetupContext("set_input_arrays (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -51073,191 +50941,328 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_input_arrays,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 253, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 226, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 253, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 253, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 253, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 226, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 253, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 226, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_APO", 0) < (0)) __PYX_ERR(5, 253, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_APO", 0, 1, 4, i); __PYX_ERR(5, 253, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 253, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 253, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 253, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 253, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "set_input_arrays", 0) < (0)) __PYX_ERR(2, 226, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("set_input_arrays", 1, 2, 2, i); __PYX_ERR(2, 226, __pyx_L3_error) } } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 255, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)((int)-2147483648)); - } - if (values[2]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 255, __pyx_L3_error) - } else { - __pyx_v_slowperiod = ((int)((int)-2147483648)); - } - if (values[3]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 255, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_matype = ((int)((int)0)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 226, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 226, __pyx_L3_error) } + __pyx_v_self = values[0]; + __pyx_v_input_arrays = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_APO", 0, 1, 4, __pyx_nargs); __PYX_ERR(5, 253, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("set_input_arrays", 1, 2, 2, __pyx_nargs); __PYX_ERR(2, 226, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_APO", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.Function.set_input_arrays", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 255, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_378stream_APO(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype); + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_16set_input_arrays(__pyx_self, __pyx_v_self, __pyx_v_input_arrays); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_378stream_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; +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_16set_input_arrays(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_arrays) { + PyObject *__pyx_v_local = NULL; + PyObject *__pyx_v_missing_keys = NULL; + PyObject *__pyx_v_key = NULL; + PyObject *__pyx_v_missing = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + Py_ssize_t __pyx_t_5; + PyObject *(*__pyx_t_6)(PyObject *); + int __pyx_t_7; + int __pyx_t_8; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11[4]; + PyObject *__pyx_t_12 = 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_RefNannySetupContext("set_input_arrays", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 276, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_local = __pyx_t_1; __pyx_t_1 = 0; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[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_mstate_global->__pyx_n_u_TA_APO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 281, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 252, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyObject_IsInstance(__pyx_v_input_arrays, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(2, 252, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_2) { - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 282, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __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; -} - + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 253, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_missing_keys = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_381stream_AROON(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds + __pyx_t_3 = __pyx_v_self; + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__input_price_series_na, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 254, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { + __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); + __pyx_t_5 = 0; + __pyx_t_6 = NULL; + } else { + __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 254, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_6 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 254, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + for (;;) { + if (likely(!__pyx_t_6)) { + if (likely(PyList_CheckExact(__pyx_t_3))) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 254, __pyx_L1_error) + #endif + if (__pyx_t_5 >= __pyx_temp) break; + } + __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_3, __pyx_t_5, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_5; + } else { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 254, __pyx_L1_error) + #endif + if (__pyx_t_5 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5)); + #else + __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_5); + #endif + ++__pyx_t_5; + } + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 254, __pyx_L1_error) + } else { + __pyx_t_1 = __pyx_t_6(__pyx_t_3); + if (unlikely(!__pyx_t_1)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 254, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_1); + __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_1); + __pyx_t_1 = 0; + + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 255, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_7 = (__pyx_t_1 != Py_None); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_7) { + } else { + __pyx_t_2 = __pyx_t_7; + goto __pyx_L7_bool_binop_done; + } + + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 256, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_7 = PyObject_IsInstance(__pyx_v_input_arrays, __pyx_t_1); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(2, 256, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_2 = __pyx_t_7; + __pyx_L7_bool_binop_done:; + + if (__pyx_t_2) { + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_input_arrays, __pyx_mstate_global->__pyx_n_u_columns); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 257, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_key, __pyx_t_1, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 257, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 257, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_XDECREF_SET(__pyx_v_missing, __pyx_t_1); + __pyx_t_1 = 0; + + goto __pyx_L6; + } + + /*else*/ { + __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_key, __pyx_v_input_arrays, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 259, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 259, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_XDECREF_SET(__pyx_v_missing, __pyx_t_1); + __pyx_t_1 = 0; + } + __pyx_L6:; + + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_missing); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 260, __pyx_L1_error) + if (__pyx_t_2) { + + __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_missing_keys, __pyx_v_key); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(2, 261, __pyx_L1_error) + + } + + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __pyx_t_5 = __Pyx_PyList_GET_SIZE(__pyx_v_missing_keys); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(2, 262, __pyx_L1_error) + __pyx_t_2 = (__pyx_t_5 == 0); + if (likely(__pyx_t_2)) { + + if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays, __pyx_v_input_arrays) < (0)) __PYX_ERR(2, 263, __pyx_L1_error) + + if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs_valid, Py_False) < (0)) __PYX_ERR(2, 264, __pyx_L1_error) + + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(Py_True); + __pyx_r = Py_True; + goto __pyx_L0; + + } + + /*else*/ { + __pyx_t_1 = NULL; + + __pyx_t_5 = __Pyx_PyList_GET_SIZE(__pyx_v_missing_keys); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(2, 268, __pyx_L1_error) + __pyx_t_2 = (__pyx_t_5 > 1); + if (__pyx_t_2) { + __Pyx_INCREF(__pyx_mstate_global->__pyx_n_u_s); + __pyx_t_9 = __pyx_mstate_global->__pyx_n_u_s; + } else { + __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u__2); + __pyx_t_9 = __pyx_mstate_global->__pyx_kp_u__2; + } + __pyx_t_10 = __Pyx_PyUnicode_Unicode(__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 268, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + + __pyx_t_9 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__3, __pyx_v_missing_keys); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 270, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_11[0] = __pyx_mstate_global->__pyx_kp_u_input_arrays_parameter_missing_r; + __pyx_t_11[1] = __pyx_t_10; + __pyx_t_11[2] = __pyx_mstate_global->__pyx_kp_u_; + __pyx_t_11[3] = __pyx_t_9; + + __pyx_t_12 = __Pyx_PyUnicode_Join(__pyx_t_11, 4, 48 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_10) + 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_10) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_9)); + if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 267, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_4 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_t_12}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_Exception)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 267, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(2, 267, __pyx_L1_error) + } + + } + + __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_3); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_XDECREF(__pyx_t_12); + __Pyx_AddTraceback("talib._ta_lib.Function.set_input_arrays", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_local); + __Pyx_XDECREF(__pyx_v_missing_keys); + __Pyx_XDECREF(__pyx_v_key); + __Pyx_XDECREF(__pyx_v_missing); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_19get_parameters(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_380stream_AROON, "stream_AROON(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nAROON(high, low[, timeperiod=?])\n\nAroon (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low']\nParameters:\n timeperiod: 14\nOutputs:\n aroondown\n aroonup"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_381stream_AROON = {"stream_AROON", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_381stream_AROON, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_380stream_AROON}; -static PyObject *__pyx_pw_5talib_7_ta_lib_381stream_AROON(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_18get_parameters, "Function.get_parameters(self)\n\nReturns the function's optional parameters and their default values."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_19get_parameters = {"get_parameters", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_19get_parameters, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_18get_parameters}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_19get_parameters(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_self = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_AROON (wrapper)", 0); + __Pyx_RefNannySetupContext("get_parameters (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -51267,165 +51272,190 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 284, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 275, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 284, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 284, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 284, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 275, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_AROON", 0) < (0)) __PYX_ERR(5, 284, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_AROON", 0, 2, 3, i); __PYX_ERR(5, 284, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 284, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 284, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 284, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "get_parameters", 0) < (0)) __PYX_ERR(2, 275, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("get_parameters", 1, 1, 1, i); __PYX_ERR(2, 275, __pyx_L3_error) } } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 286, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 275, __pyx_L3_error) } + __pyx_v_self = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_AROON", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 284, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("get_parameters", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 275, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_AROON", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.Function.get_parameters", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 286, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 286, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_380stream_AROON(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_18get_parameters(__pyx_self, __pyx_v_self); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_380stream_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; +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_18get_parameters(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { + PyObject *__pyx_v_local = NULL; + PyObject *__pyx_v_ret = NULL; + PyObject *__pyx_v_opt_input = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; + size_t __pyx_t_4; + Py_ssize_t __pyx_t_5; + PyObject *(*__pyx_t_6)(PyObject *); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_AROON", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_RefNannySetupContext("get_parameters", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 308, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_local = __pyx_t_1; __pyx_t_1 = 0; - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 310, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_2 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_OrderedDict); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 280, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); + assert(__pyx_t_2); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_3, __pyx__function); + __pyx_t_4 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 280, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_v_ret = __pyx_t_1; __pyx_t_1 = 0; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 312, __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_mstate_global->__pyx_n_u_TA_AROON, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 316, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 281, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { + __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); + __pyx_t_5 = 0; + __pyx_t_6 = NULL; + } else { + __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 281, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_6 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 281, __pyx_L1_error) + } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + for (;;) { + if (likely(!__pyx_t_6)) { + if (likely(PyList_CheckExact(__pyx_t_3))) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 281, __pyx_L1_error) + #endif + if (__pyx_t_5 >= __pyx_temp) break; + } + __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_3, __pyx_t_5, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_5; + } else { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 281, __pyx_L1_error) + #endif + if (__pyx_t_5 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5)); + #else + __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_5); + #endif + ++__pyx_t_5; + } + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 281, __pyx_L1_error) + } else { + __pyx_t_1 = __pyx_t_6(__pyx_t_3); + if (unlikely(!__pyx_t_1)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 281, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_1); + __Pyx_XDECREF_SET(__pyx_v_opt_input, __pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_v_self; + __Pyx_INCREF(__pyx_t_2); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_opt_input}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__get_opt_input_value, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 282, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (unlikely((PyObject_SetItem(__pyx_v_ret, __pyx_v_opt_input, __pyx_t_1) < 0))) __PYX_ERR(2, 282, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outaroondown); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 317, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outaroonup); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 317, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 317, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 317, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(5, 317, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_3 = 0; - __pyx_r = __pyx_t_4; - __pyx_t_4 = 0; + __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_4); - __Pyx_AddTraceback("talib._ta_lib.stream_AROON", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.Function.get_parameters", __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(__pyx_v_local); + __Pyx_XDECREF(__pyx_v_ret); + __Pyx_XDECREF(__pyx_v_opt_input); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -51433,36 +51463,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_380stream_AROON(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_383stream_AROONOSC(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_21set_parameters(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_382stream_AROONOSC, "stream_AROONOSC(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nAROONOSC(high, low[, timeperiod=?])\n\nAroon Oscillator (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low']\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_383stream_AROONOSC = {"stream_AROONOSC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_383stream_AROONOSC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_382stream_AROONOSC}; -static PyObject *__pyx_pw_5talib_7_ta_lib_383stream_AROONOSC(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_20set_parameters, "Function.set_parameters(self, parameters=None, **kwargs)\n\nSets the function parameter values."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_21set_parameters = {"set_parameters", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_21set_parameters, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_20set_parameters}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_21set_parameters(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_parameters = 0; + PyObject *__pyx_v_kwargs = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_AROONOSC (wrapper)", 0); + __Pyx_RefNannySetupContext("set_parameters (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -51471,149 +51501,297 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return NULL; + __Pyx_GOTREF(__pyx_v_kwargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_parameters,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 319, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 285, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 319, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 319, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 285, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 319, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 285, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_AROONOSC", 0) < (0)) __PYX_ERR(5, 319, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_AROONOSC", 0, 2, 3, i); __PYX_ERR(5, 319, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, __pyx_v_kwargs, values, kwd_pos_args, __pyx_kwds_len, "set_parameters", 1) < (0)) __PYX_ERR(2, 285, __pyx_L3_error) + if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_None)); + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("set_parameters", 0, 1, 2, i); __PYX_ERR(2, 285, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 319, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 319, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 285, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 319, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 285, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } + if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_None)); } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 321, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } + __pyx_v_self = values[0]; + __pyx_v_parameters = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_AROONOSC", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 319, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("set_parameters", 0, 1, 2, __pyx_nargs); __PYX_ERR(2, 285, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_AROONOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 321, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 321, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_382stream_AROONOSC(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + __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 */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + __Pyx_DECREF(__pyx_v_kwargs); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_382stream_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; +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_20set_parameters(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_parameters, PyObject *__pyx_v_kwargs) { + PyObject *__pyx_v_local = NULL; + PyObject *__pyx_v_param = NULL; + PyObject *__pyx_v_value = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + Py_ssize_t __pyx_t_5; + PyObject *(*__pyx_t_6)(PyObject *); + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *(*__pyx_t_10)(PyObject *); 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_RefNannySetupContext("set_parameters", 0); + __Pyx_INCREF(__pyx_v_parameters); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 341, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 289, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_local = __pyx_t_1; __pyx_t_1 = 0; - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 343, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_parameters); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 290, __pyx_L1_error) + if (!__pyx_t_2) { + } else { + __Pyx_INCREF(__pyx_v_parameters); + __pyx_t_1 = __pyx_v_parameters; + goto __pyx_L3_bool_binop_done; + } + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 290, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_1 = __pyx_t_3; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_L3_bool_binop_done:; + __Pyx_DECREF_SET(__pyx_v_parameters, __pyx_t_1); __pyx_t_1 = 0; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 345, __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_mstate_global->__pyx_n_u_TA_AROONOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 348, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = __pyx_v_parameters; + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_kwargs}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_update, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 291, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 349, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + __pyx_t_3 = __pyx_v_parameters; + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_items, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 292, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { + __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); + __pyx_t_5 = 0; + __pyx_t_6 = NULL; + } else { + __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 292, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_6 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 292, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + for (;;) { + if (likely(!__pyx_t_6)) { + if (likely(PyList_CheckExact(__pyx_t_3))) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 292, __pyx_L1_error) + #endif + if (__pyx_t_5 >= __pyx_temp) break; + } + __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_3, __pyx_t_5, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_5; + } else { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 292, __pyx_L1_error) + #endif + if (__pyx_t_5 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5)); + #else + __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_5); + #endif + ++__pyx_t_5; + } + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 292, __pyx_L1_error) + } else { + __pyx_t_1 = __pyx_t_6(__pyx_t_3); + if (unlikely(!__pyx_t_1)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 292, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_1); + if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { + PyObject* sequence = __pyx_t_1; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(2, 292, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_7 = PyTuple_GET_ITEM(sequence, 0); + __Pyx_INCREF(__pyx_t_7); + __pyx_t_8 = PyTuple_GET_ITEM(sequence, 1); + __Pyx_INCREF(__pyx_t_8); + } else { + __pyx_t_7 = __Pyx_PyList_GetItemRefFast(sequence, 0, __Pyx_ReferenceSharing_SharedReference); + if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 292, __pyx_L1_error) + __Pyx_XGOTREF(__pyx_t_7); + __pyx_t_8 = __Pyx_PyList_GetItemRefFast(sequence, 1, __Pyx_ReferenceSharing_SharedReference); + if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 292, __pyx_L1_error) + __Pyx_XGOTREF(__pyx_t_8); + } + #else + __pyx_t_7 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 292, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 292, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + #endif + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } else { + Py_ssize_t index = -1; + __pyx_t_9 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 292, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_10 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_9); + index = 0; __pyx_t_7 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_7)) goto __pyx_L7_unpacking_failed; + __Pyx_GOTREF(__pyx_t_7); + index = 1; __pyx_t_8 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_8)) goto __pyx_L7_unpacking_failed; + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 2) < (0)) __PYX_ERR(2, 292, __pyx_L1_error) + __pyx_t_10 = NULL; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + goto __pyx_L8_unpacking_done; + __pyx_L7_unpacking_failed:; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_10 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(2, 292, __pyx_L1_error) + __pyx_L8_unpacking_done:; + } + __Pyx_XDECREF_SET(__pyx_v_param, __pyx_t_7); + __pyx_t_7 = 0; + __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_8); + __pyx_t_8 = 0; + + __pyx_t_8 = __pyx_v_self; + __Pyx_INCREF(__pyx_t_8); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[3] = {__pyx_t_8, __pyx_v_param, __pyx_v_value}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__check_opt_input_value, __pyx_callargs+__pyx_t_4, (3-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 293, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 293, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_2) { + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 294, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_param); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 294, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely((PyObject_SetItem(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_value, __pyx_v_value) < 0))) __PYX_ERR(2, 294, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + } + + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs_valid, Py_False) < (0)) __PYX_ERR(2, 295, __pyx_L1_error) + + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_parameters); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 296, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 296, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (unlikely((PyObject_SetItem(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_parameters, __pyx_t_3) < 0))) __PYX_ERR(2, 296, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + + /* 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.stream_AROONOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("talib._ta_lib.Function.set_parameters", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF(__pyx_v_local); + __Pyx_XDECREF(__pyx_v_param); + __Pyx_XDECREF(__pyx_v_value); + __Pyx_XDECREF(__pyx_v_parameters); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -51621,23 +51799,25 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_382stream_AROONOSC(CYTHON_UNUSED PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_385stream_ASIN(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_23set_function_args(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_384stream_ASIN, "stream_ASIN(ndarray real)\n\nASIN(real)\n\nVector Trigonometric ASin (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_385stream_ASIN = {"stream_ASIN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_385stream_ASIN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_384stream_ASIN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_385stream_ASIN(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_22set_function_args, "Function.set_function_args(self, *args, **kwargs)\n\noptional args:[input_arrays,] [parameter_args,] [input_price_series_kwargs,] [parameter_kwargs]"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_23set_function_args = {"set_function_args", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_23set_function_args, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_22set_function_args}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_23set_function_args(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kwargs = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -51648,7 +51828,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_ASIN (wrapper)", 0); + __Pyx_RefNannySetupContext("set_function_args (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -51657,113 +51837,404 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return NULL; + __Pyx_GOTREF(__pyx_v_kwargs); + __pyx_v_args = __Pyx_ArgsSlice_FASTCALL(__pyx_args, 1, __pyx_nargs); + if (unlikely(!__pyx_v_args)) { + __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0; + __Pyx_RefNannyFinishContext(); + return NULL; + } + __Pyx_GOTREF(__pyx_v_args); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 351, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 300, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + default: case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 351, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 300, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; - default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_ASIN", 0) < (0)) __PYX_ERR(5, 351, __pyx_L3_error) + const Py_ssize_t used_pos_args = (kwd_pos_args < 1) ? kwd_pos_args : 1; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, __pyx_kwds_len, "set_function_args", 1) < (0)) __PYX_ERR(2, 300, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_ASIN", 1, 1, 1, i); __PYX_ERR(5, 351, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("set_function_args", 0, 1, 1, i); __PYX_ERR(2, 300, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs < 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 351, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 300, __pyx_L3_error) } - __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_self = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_ASIN", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 351, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("set_function_args", 0, 1, 1, __pyx_nargs); __PYX_ERR(2, 300, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_ASIN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 353, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_384stream_ASIN(__pyx_self, __pyx_v_real); + __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 */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + __Pyx_DECREF(__pyx_v_args); + __Pyx_DECREF(__pyx_v_kwargs); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_384stream_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; +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_22set_function_args(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs) { + PyObject *__pyx_v_local = NULL; + int __pyx_v_update_info; + PyObject *__pyx_v_key = NULL; + PyObject *__pyx_v_value = NULL; + PyObject *__pyx_v_skip_first = NULL; + PyObject *__pyx_v_i = NULL; + PyObject *__pyx_v_param_name = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; + Py_ssize_t __pyx_t_2; + Py_ssize_t __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_t_6; + int __pyx_t_7; + PyObject *__pyx_t_8 = NULL; + size_t __pyx_t_9; + PyObject *__pyx_t_10 = NULL; + PyObject *(*__pyx_t_11)(PyObject *); + int __pyx_t_12; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_ASIN", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("set_function_args", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 370, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 304, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_local = __pyx_t_1; __pyx_t_1 = 0; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + __pyx_v_update_info = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_2 = 0; + __pyx_t_5 = __Pyx_dict_iterator(__pyx_v_kwargs, 1, ((PyObject *)NULL), (&__pyx_t_3), (&__pyx_t_4)); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 307, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_1); + __pyx_t_1 = __pyx_t_5; + __pyx_t_5 = 0; + while (1) { + __pyx_t_6 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_3, &__pyx_t_2, &__pyx_t_5, NULL, NULL, __pyx_t_4); + if (unlikely(__pyx_t_6 == 0)) break; + if (unlikely(__pyx_t_6 == -1)) __PYX_ERR(2, 307, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_5); + __pyx_t_5 = 0; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 308, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_7 = (__Pyx_PySequence_ContainsTF(__pyx_v_key, __pyx_t_5, Py_EQ)); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 308, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (__pyx_t_7) { - __pyx_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_5 = __Pyx_PyDict_GetItem(__pyx_v_kwargs, __pyx_v_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 309, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_5); + __pyx_t_5 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ASIN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 375, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __pyx_t_8 = __pyx_v_self; + __Pyx_INCREF(__pyx_t_8); + __pyx_t_9 = 0; + { + PyObject *__pyx_callargs[3] = {__pyx_t_8, __pyx_v_key, __pyx_v_value}; + __pyx_t_5 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__check_opt_input_value, __pyx_callargs+__pyx_t_9, (3-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 310, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } + __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 310, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (__pyx_t_7) { + + __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_kwargs, __pyx_v_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 311, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 311, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_key); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 311, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely((PyObject_SetItem(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_value, __pyx_t_5) < 0))) __PYX_ERR(2, 311, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + __pyx_v_update_info = 1; + + } + + goto __pyx_L5; + } + + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 313, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_7 = (__Pyx_PySequence_ContainsTF(__pyx_v_key, __pyx_t_5, Py_EQ)); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 313, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (__pyx_t_7) { + + __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_kwargs, __pyx_v_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 314, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 314, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_key); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 314, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (unlikely((PyObject_SetItem(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_price_series, __pyx_t_5) < 0))) __PYX_ERR(2, 314, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_kwargs, __pyx_v_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 315, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 315, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_10 = __Pyx_PyObject_Dict_GetItem(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 315, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely((PyObject_SetItem(__pyx_t_10, __pyx_v_key, __pyx_t_5) < 0))) __PYX_ERR(2, 315, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + } + __pyx_L5:; + } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 376, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_v_args); + if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(2, 317, __pyx_L1_error) + __pyx_t_7 = (__pyx_temp != 0); + } + + if (__pyx_t_7) { + + __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); + __pyx_v_skip_first = __pyx_mstate_global->__pyx_int_0; + + __pyx_t_5 = __pyx_v_self; + __Pyx_INCREF(__pyx_t_5); + __pyx_t_10 = __Pyx_GetItemInt_Tuple(__pyx_v_args, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 319, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __pyx_t_9 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_10}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_input_arrays, __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 319, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 319, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_7) { + + __Pyx_INCREF(__pyx_mstate_global->__pyx_int_1); + __Pyx_DECREF_SET(__pyx_v_skip_first, __pyx_mstate_global->__pyx_int_1); + + } + + __pyx_t_3 = __Pyx_PyTuple_GET_SIZE(__pyx_v_args); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(2, 321, __pyx_L1_error) + __pyx_t_1 = PyLong_FromSsize_t(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 321, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_10 = PyObject_RichCompare(__pyx_t_1, __pyx_v_skip_first, Py_GT); __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 321, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 321, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (__pyx_t_7) { + + __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); + __pyx_t_10 = __pyx_mstate_global->__pyx_int_0; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 322, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { + __pyx_t_5 = __pyx_t_1; __Pyx_INCREF(__pyx_t_5); + __pyx_t_3 = 0; + __pyx_t_11 = NULL; + } else { + __pyx_t_3 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 322, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_11 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_5); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 322, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + for (;;) { + if (likely(!__pyx_t_11)) { + if (likely(PyList_CheckExact(__pyx_t_5))) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_5); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 322, __pyx_L1_error) + #endif + if (__pyx_t_3 >= __pyx_temp) break; + } + __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_5, __pyx_t_3, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_3; + } else { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_5); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 322, __pyx_L1_error) + #endif + if (__pyx_t_3 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_3)); + #else + __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_5, __pyx_t_3); + #endif + ++__pyx_t_3; + } + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 322, __pyx_L1_error) + } else { + __pyx_t_1 = __pyx_t_11(__pyx_t_5); + if (unlikely(!__pyx_t_1)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 322, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_1); + __Pyx_XDECREF_SET(__pyx_v_param_name, __pyx_t_1); + __pyx_t_1 = 0; + __Pyx_INCREF(__pyx_t_10); + __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_10); + __pyx_t_1 = __Pyx_PyLong_AddObjC(__pyx_t_10, __pyx_mstate_global->__pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 322, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_10); + __pyx_t_10 = __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(2, 323, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_i, __pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __Pyx_PyTuple_GET_SIZE(__pyx_v_args); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(2, 324, __pyx_L1_error) + __pyx_t_1 = PyLong_FromSsize_t(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 324, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_8 = PyObject_RichCompare(__pyx_v_i, __pyx_t_1, Py_LT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 324, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 324, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (__pyx_t_7) { + + __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_args, __pyx_v_i); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 325, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_8); + __pyx_t_8 = 0; + + __pyx_t_1 = __pyx_v_self; + __Pyx_INCREF(__pyx_t_1); + __pyx_t_9 = 0; + { + PyObject *__pyx_callargs[3] = {__pyx_t_1, __pyx_v_param_name, __pyx_v_value}; + __pyx_t_8 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__check_opt_input_value, __pyx_callargs+__pyx_t_9, (3-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 326, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + } + __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 326, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (__pyx_t_7) { + + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 327, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_param_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 327, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely((PyObject_SetItem(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_value, __pyx_v_value) < 0))) __PYX_ERR(2, 327, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_v_update_info = 1; + + } + + } + + } + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + + } + + } + + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_v_args); + if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(2, 330, __pyx_L1_error) + __pyx_t_12 = (__pyx_temp != 0); + } + + if (!__pyx_t_12) { + } else { + __pyx_t_7 = __pyx_t_12; + goto __pyx_L16_bool_binop_done; + } + __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely((__pyx_t_12 < 0))) __PYX_ERR(2, 330, __pyx_L1_error) + __pyx_t_7 = __pyx_t_12; + __pyx_L16_bool_binop_done:; + if (__pyx_t_7) { + + if (__pyx_v_update_info) { + + __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_parameters); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 332, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 332, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (unlikely((PyObject_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_parameters, __pyx_t_10) < 0))) __PYX_ERR(2, 332, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + + } + + if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs_valid, Py_False) < (0)) __PYX_ERR(2, 333, __pyx_L1_error) + + } /* 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.stream_ASIN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("talib._ta_lib.Function.set_function_args", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF(__pyx_v_local); + __Pyx_XDECREF(__pyx_v_key); + __Pyx_XDECREF(__pyx_v_value); + __Pyx_XDECREF(__pyx_v_skip_first); + __Pyx_XDECREF(__pyx_v_i); + __Pyx_XDECREF(__pyx_v_param_name); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -51771,23 +52242,23 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_384stream_ASIN(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_387stream_ATAN(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_25lookback(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_386stream_ATAN, "stream_ATAN(ndarray real)\n\nATAN(real)\n\nVector Trigonometric ATan (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_387stream_ATAN = {"stream_ATAN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_387stream_ATAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_386stream_ATAN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_387stream_ATAN(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_24lookback, "Function.lookback(self)\n\nReturns the lookback window size for the function with the parameter\nvalues that are currently set."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_25lookback = {"lookback", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_25lookback, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_24lookback}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_25lookback(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyObject *__pyx_v_self = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -51798,7 +52269,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_ATAN (wrapper)", 0); + __Pyx_RefNannySetupContext("lookback (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -51808,99 +52279,251 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 378, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 335, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 378, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 335, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_ATAN", 0) < (0)) __PYX_ERR(5, 378, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "lookback", 0) < (0)) __PYX_ERR(2, 335, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_ATAN", 1, 1, 1, i); __PYX_ERR(5, 378, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("lookback", 1, 1, 1, i); __PYX_ERR(2, 335, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 378, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 335, __pyx_L3_error) } - __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_self = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_ATAN", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 378, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("lookback", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 335, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_ATAN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.Function.lookback", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 380, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_386stream_ATAN(__pyx_self, __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_24lookback(__pyx_self, __pyx_v_self); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_386stream_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; +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_24lookback(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { + PyObject *__pyx_v_local = NULL; + TA_ParamHolder *__pyx_v_holder; + PyObject *__pyx_v_i = NULL; + PyObject *__pyx_v_opt_input = NULL; + PyObject *__pyx_v_value = NULL; + PyObject *__pyx_v_type_ = NULL; + int __pyx_v_lookback; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_ATAN", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + char *__pyx_t_2; + TA_ParamHolder *__pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + Py_ssize_t __pyx_t_6; + PyObject *(*__pyx_t_7)(PyObject *); + PyObject *__pyx_t_8 = NULL; + size_t __pyx_t_9; + int __pyx_t_10; + int __pyx_t_11; + int __pyx_t_12; + double __pyx_t_13; + int __pyx_t_14; + int __pyx_t_15; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("lookback", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 397, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 341, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_local = __pyx_t_1; __pyx_t_1 = 0; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 343, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_AsWritableString(__pyx_t_1); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(2, 343, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib___ta_paramHolderAlloc(__pyx_t_2); if (unlikely(__pyx_t_3 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(2, 343, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_holder = __pyx_t_3; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); + __pyx_t_1 = __pyx_mstate_global->__pyx_int_0; + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 344, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) { + __pyx_t_5 = __pyx_t_4; __Pyx_INCREF(__pyx_t_5); + __pyx_t_6 = 0; + __pyx_t_7 = NULL; + } else { + __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 344, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_7 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 344, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + for (;;) { + if (likely(!__pyx_t_7)) { + if (likely(PyList_CheckExact(__pyx_t_5))) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_5); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 344, __pyx_L1_error) + #endif + if (__pyx_t_6 >= __pyx_temp) break; + } + __pyx_t_4 = __Pyx_PyList_GetItemRefFast(__pyx_t_5, __pyx_t_6, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_6; + } else { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_5); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 344, __pyx_L1_error) + #endif + if (__pyx_t_6 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6)); + #else + __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_5, __pyx_t_6); + #endif + ++__pyx_t_6; + } + if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 344, __pyx_L1_error) + } else { + __pyx_t_4 = __pyx_t_7(__pyx_t_5); + if (unlikely(!__pyx_t_4)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 344, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_4); + __Pyx_XDECREF_SET(__pyx_v_opt_input, __pyx_t_4); + __pyx_t_4 = 0; + __Pyx_INCREF(__pyx_t_1); + __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_1); + __pyx_t_4 = __Pyx_PyLong_AddObjC(__pyx_t_1, __pyx_mstate_global->__pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 344, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); + __pyx_t_1 = __pyx_t_4; + __pyx_t_4 = 0; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_t_8 = __pyx_v_self; + __Pyx_INCREF(__pyx_t_8); + __pyx_t_9 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_v_opt_input}; + __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__get_opt_input_value, __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 345, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } + __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_4); + __pyx_t_4 = 0; - __pyx_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_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 346, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_opt_input); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 346, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_PyObject_Dict_GetItem(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_type_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 346, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_XDECREF_SET(__pyx_v_type_, __pyx_t_4); + __pyx_t_4 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 402, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInput_RealRange); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 347, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_8 = PyObject_RichCompare(__pyx_v_type_, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 347, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(2, 347, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (!__pyx_t_11) { + } else { + __pyx_t_10 = __pyx_t_11; + goto __pyx_L6_bool_binop_done; + } + __pyx_t_8 = __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInput_RealList); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 347, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_4 = PyObject_RichCompare(__pyx_v_type_, __pyx_t_8, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 347, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(2, 347, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_10 = __pyx_t_11; + __pyx_L6_bool_binop_done:; + if (__pyx_t_10) { + + __pyx_t_12 = __Pyx_PyLong_As_int(__pyx_v_i); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 348, __pyx_L1_error) + __pyx_t_13 = __Pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_13 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 348, __pyx_L1_error) + __pyx_t_14 = __pyx_f_5talib_7_ta_lib___ta_setOptInputParamReal(__pyx_v_holder, __pyx_t_12, __pyx_t_13); if (unlikely(__pyx_t_14 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(2, 348, __pyx_L1_error) + + goto __pyx_L5; + } + + __pyx_t_4 = __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInput_IntegerRange); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 349, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_8 = PyObject_RichCompare(__pyx_v_type_, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 349, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(2, 349, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (!__pyx_t_11) { + } else { + __pyx_t_10 = __pyx_t_11; + goto __pyx_L8_bool_binop_done; + } + __pyx_t_8 = __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInput_IntegerList); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 349, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_4 = PyObject_RichCompare(__pyx_v_type_, __pyx_t_8, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 349, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(2, 349, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_10 = __pyx_t_11; + __pyx_L8_bool_binop_done:; + if (__pyx_t_10) { + + __pyx_t_14 = __Pyx_PyLong_As_int(__pyx_v_i); if (unlikely((__pyx_t_14 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 350, __pyx_L1_error) + __pyx_t_12 = __Pyx_PyLong_As_int(__pyx_v_value); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 350, __pyx_L1_error) + __pyx_t_15 = __pyx_f_5talib_7_ta_lib___ta_setOptInputParamInteger(__pyx_v_holder, __pyx_t_14, __pyx_t_12); if (unlikely(__pyx_t_15 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(2, 350, __pyx_L1_error) + + } + __pyx_L5:; + + } + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_15 = __pyx_f_5talib_7_ta_lib___ta_getLookback(__pyx_v_holder); if (unlikely(__pyx_t_15 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(2, 352, __pyx_L1_error) + __pyx_v_lookback = __pyx_t_15; + + __pyx_t_15 = __pyx_f_5talib_7_ta_lib___ta_paramHolderFree(__pyx_v_holder); if (unlikely(__pyx_t_15 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(2, 353, __pyx_L1_error) + __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 403, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_lookback); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 354, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -51910,10 +52533,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_386stream_ATAN(CYTHON_UNUSED PyObject /* 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_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("talib._ta_lib.Function.lookback", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF(__pyx_v_local); + __Pyx_XDECREF(__pyx_v_i); + __Pyx_XDECREF(__pyx_v_opt_input); + __Pyx_XDECREF(__pyx_v_value); + __Pyx_XDECREF(__pyx_v_type_); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -51921,37 +52551,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_386stream_ATAN(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_389stream_ATR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_27output_names(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_388stream_ATR, "stream_ATR(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nATR(high, low, close[, timeperiod=?])\n\nAverage True Range (Volatility Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_389stream_ATR = {"stream_ATR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_389stream_ATR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_388stream_ATR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_389stream_ATR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_26output_names, "Function.output_names(self)\n\nReturns a list of the output names returned by this function."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_27output_names = {"output_names", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_27output_names, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_26output_names}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_27output_names(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_self = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_ATR (wrapper)", 0); + __Pyx_RefNannySetupContext("output_names (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -51961,166 +52588,116 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 405, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 356, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 405, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 405, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 405, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 405, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 356, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_ATR", 0) < (0)) __PYX_ERR(5, 405, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_ATR", 0, 3, 4, i); __PYX_ERR(5, 405, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 405, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 405, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 405, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 405, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "output_names", 0) < (0)) __PYX_ERR(2, 356, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("output_names", 1, 1, 1, i); __PYX_ERR(2, 356, __pyx_L3_error) } } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 407, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 356, __pyx_L3_error) } + __pyx_v_self = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_ATR", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 405, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("output_names", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 356, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_ATR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.Function.output_names", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 407, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 407, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 407, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_388stream_ATR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_26output_names(__pyx_self, __pyx_v_self); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_388stream_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; +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; - npy_intp __pyx_t_2; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + size_t __pyx_t_5; + int __pyx_t_6; + int __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("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(5, 428, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 430, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + __Pyx_RefNannySetupContext("output_names", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 432, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 361, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 361, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_2 = __pyx_t_4; + __Pyx_INCREF(__pyx_t_2); + __pyx_t_5 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_keys, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 361, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_v_ret = __pyx_t_1; __pyx_t_1 = 0; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 434, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_t_6 = PyList_Check(__pyx_v_ret); + __pyx_t_7 = (!__pyx_t_6); + if (__pyx_t_7) { - __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 = PySequence_List(__pyx_v_ret); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 363, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_ret, __pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 437, __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(5, 438, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; + __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_AddTraceback("talib._ta_lib.stream_ATR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("talib._ta_lib.Function.output_names", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF(__pyx_v_ret); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -52128,37 +52705,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_388stream_ATR(CYTHON_UNUSED PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_391stream_AVGPRICE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_29outputs(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_390stream_AVGPRICE, "stream_AVGPRICE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nAVGPRICE(open, high, low, close)\n\nAverage Price (Price Transform)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_391stream_AVGPRICE = {"stream_AVGPRICE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_391stream_AVGPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_390stream_AVGPRICE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_391stream_AVGPRICE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_28outputs, "Function.outputs(self)\n\nReturns the TA function values for the currently set input_arrays and\nparameters. Returned values are a ndarray if there is only one output\nor a list of ndarrays for more than one output."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_29outputs = {"outputs", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_29outputs, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_28outputs}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_29outputs(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + PyObject *__pyx_v_self = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_AVGPRICE (wrapper)", 0); + __Pyx_RefNannySetupContext("outputs (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -52168,335 +52742,428 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 440, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 366, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 440, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 440, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 440, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 440, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 366, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_AVGPRICE", 0) < (0)) __PYX_ERR(5, 440, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_AVGPRICE", 1, 4, 4, i); __PYX_ERR(5, 440, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "outputs", 0) < (0)) __PYX_ERR(2, 366, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("outputs", 1, 1, 1, i); __PYX_ERR(2, 366, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 440, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 440, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 440, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 440, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 366, __pyx_L3_error) } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + __pyx_v_self = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_AVGPRICE", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 440, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("outputs", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 366, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_AVGPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.Function.outputs", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 442, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 442, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 442, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 442, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_390stream_AVGPRICE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_28outputs(__pyx_self, __pyx_v_self); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_390stream_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; +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_28outputs(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { + PyObject *__pyx_v_local = NULL; + PyObject *__pyx_v_ret = NULL; + PyObject *__pyx_v_index = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + int __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + size_t __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + Py_ssize_t __pyx_t_7; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("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_RefNannySetupContext("outputs", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 462, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 373, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_local = __pyx_t_1; __pyx_t_1 = 0; - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 464, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs_valid); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 374, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 374, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_3 = (!__pyx_t_2); + if (__pyx_t_3) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 466, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_4 = __pyx_v_self; + __Pyx_INCREF(__pyx_t_4); + __pyx_t_5 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__call_function, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 375, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 468, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 376, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_4 = __pyx_t_6; + __Pyx_INCREF(__pyx_t_4); + __pyx_t_5 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_values, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 376, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_v_ret = __pyx_t_1; __pyx_t_1 = 0; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 470, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_t_3 = PyList_Check(__pyx_v_ret); + __pyx_t_2 = (!__pyx_t_3); + if (__pyx_t_2) { - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_t_1 = PySequence_List(__pyx_v_ret); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 378, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_ret, __pyx_t_1); + __pyx_t_1 = 0; - __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_mstate_global->__pyx_n_u_TA_AVGPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 473, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_PANDAS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 379, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = (__pyx_t_1 != Py_None); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L6_bool_binop_done; + } - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 474, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 380, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_PANDAS_DATAFRAME); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 380, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_3 = PyObject_IsInstance(__pyx_t_1, __pyx_t_6); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 380, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_2 = __pyx_t_3; + __pyx_L6_bool_binop_done:; + if (__pyx_t_2) { - /* 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; -} + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 381, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_index); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 381, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_v_index = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_t_7 = PyObject_Length(__pyx_v_ret); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(2, 382, __pyx_L1_error) + __pyx_t_2 = (__pyx_t_7 == 1); + if (__pyx_t_2) { -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_393stream_AVGDEV(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_392stream_AVGDEV, "stream_AVGDEV(ndarray real, int timeperiod=-0x80000000)\n\nAVGDEV(real[, timeperiod=?])\n\nAverage Deviation (Price Transform)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_393stream_AVGDEV = {"stream_AVGDEV", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_393stream_AVGDEV, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_392stream_AVGDEV}; -static PyObject *__pyx_pw_5talib_7_ta_lib_393stream_AVGDEV(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_AVGDEV (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 476, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 476, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 476, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_AVGDEV", 0) < (0)) __PYX_ERR(5, 476, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_AVGDEV", 0, 1, 2, i); __PYX_ERR(5, 476, __pyx_L3_error) } + __Pyx_XDECREF(__pyx_r); + __pyx_t_6 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_PANDAS_SERIES); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 383, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_ret, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 383, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_5 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_6); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_5 = 0; } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 476, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 476, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + #endif + { + PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 1 : 0)] = {__pyx_t_6, __pyx_t_8}; + __pyx_t_9 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 383, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_index, __pyx_v_index, __pyx_t_9, __pyx_callargs+2, 0) < (0)) __PYX_ERR(2, 383, __pyx_L1_error) + __pyx_t_1 = __Pyx_Object_Vectorcall_CallFromBuilder((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_9); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 383, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); } + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 478, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + + /*else*/ { + __Pyx_XDECREF(__pyx_r); + __pyx_t_4 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_PANDAS_DATAFRAME); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 385, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_6 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_numpy); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 385, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_column_stack); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 385, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_t_5 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_11))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_11); + assert(__pyx_t_6); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_11); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_11, __pyx__function); + __pyx_t_5 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_v_ret}; + __pyx_t_8 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_11, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 385, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + } + + __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_output_names); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 387, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __pyx_t_5 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_9))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_9); + assert(__pyx_t_4); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_9); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_9, __pyx__function); + __pyx_t_5 = 0; + } + #endif + { + PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 2 : 0)] = {__pyx_t_4, __pyx_t_8}; + __pyx_t_6 = __Pyx_MakeVectorcallBuilderKwds(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 385, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_index, __pyx_v_index, __pyx_t_6, __pyx_callargs+2, 0) < (0)) __PYX_ERR(2, 385, __pyx_L1_error) + if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_columns, __pyx_t_11, __pyx_t_6, __pyx_callargs+2, 1) < (0)) __PYX_ERR(2, 385, __pyx_L1_error) + __pyx_t_1 = __Pyx_Object_Vectorcall_CallFromBuilder((PyObject*)__pyx_t_9, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_6); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 385, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_AVGDEV", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 476, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_AVGDEV", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 478, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_392stream_AVGDEV(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} -static PyObject *__pyx_pf_5talib_7_ta_lib_392stream_AVGDEV(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_AVGDEV", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 388, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = (__pyx_t_1 != Py_None); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L9_bool_binop_done; + } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 497, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 389, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 389, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_3 = PyObject_IsInstance(__pyx_t_1, __pyx_t_9); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 389, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_2 = __pyx_t_3; + __pyx_L9_bool_binop_done:; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + if (__pyx_t_2) { - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_7 = PyObject_Length(__pyx_v_ret); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(2, 390, __pyx_L1_error) + __pyx_t_2 = (__pyx_t_7 == 1); + if (__pyx_t_2) { - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_POLARS_SERIES); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 391, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_11 = __Pyx_GetItemInt(__pyx_v_ret, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 391, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __pyx_t_5 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_6); + assert(__pyx_t_1); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); + __pyx_t_5 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_t_11}; + __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 391, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + } + __pyx_r = __pyx_t_9; + __pyx_t_9 = 0; + goto __pyx_L0; - __pyx_v_retCode = TA_AVGDEV((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGDEV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 502, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /*else*/ { + __Pyx_XDECREF(__pyx_r); + __pyx_t_6 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 393, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __pyx_t_8 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_numpy); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 393, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_column_stack); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 393, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_5 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_10))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_10); + assert(__pyx_t_8); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_10); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_10, __pyx__function); + __pyx_t_5 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_v_ret}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_10, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 393, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 503, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; + __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_output_names); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 394, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __pyx_t_5 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_11))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_11); + assert(__pyx_t_6); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_11); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_11, __pyx__function); + __pyx_t_5 = 0; + } + #endif + { + PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 1 : 0)] = {__pyx_t_6, __pyx_t_1}; + __pyx_t_8 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 393, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_schema, __pyx_t_10, __pyx_t_8, __pyx_callargs+2, 0) < (0)) __PYX_ERR(2, 393, __pyx_L1_error) + __pyx_t_9 = __Pyx_Object_Vectorcall_CallFromBuilder((PyObject*)__pyx_t_11, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_8); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 393, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + } + __pyx_r = __pyx_t_9; + __pyx_t_9 = 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(2, 396, __pyx_L1_error) + __pyx_t_2 = (__pyx_t_7 == 1); + if (__pyx_t_2) { + __pyx_t_11 = __Pyx_GetItemInt(__pyx_v_ret, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 396, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __pyx_t_9 = __pyx_t_11; + __pyx_t_11 = 0; + } else { + __Pyx_INCREF(__pyx_v_ret); + __pyx_t_9 = __pyx_v_ret; + } + __pyx_r = __pyx_t_9; + __pyx_t_9 = 0; + goto __pyx_L0; + } /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_AVGDEV", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_XDECREF(__pyx_t_11); + __Pyx_AddTraceback("talib._ta_lib.Function.outputs", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF(__pyx_v_local); + __Pyx_XDECREF(__pyx_v_ret); + __Pyx_XDECREF(__pyx_v_index); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -52504,38 +53171,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_392stream_AVGDEV(CYTHON_UNUSED PyObjec /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_395stream_BBANDS(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_31run(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_394stream_BBANDS, "stream_BBANDS(ndarray real, int timeperiod=-0x80000000, double nbdevup=-4e37, double nbdevdn=-4e37, int matype=0)\n\nBBANDS(real[, timeperiod=?, nbdevup=?, nbdevdn=?, matype=?])\n\nBollinger Bands (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 5\n nbdevup: 2.0\n nbdevdn: 2.0\n matype: 0 (Simple Moving Average)\nOutputs:\n upperband\n middleband\n lowerband"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_395stream_BBANDS = {"stream_BBANDS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_395stream_BBANDS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_394stream_BBANDS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_395stream_BBANDS(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_30run, "Function.run(self, input_arrays=None)\n\nrun([input_arrays=None])\n\nThis is a shortcut to the outputs property that also allows setting\nthe input_arrays dict."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_31run = {"run", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_31run, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_30run}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_31run(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - double __pyx_v_nbdevup; - double __pyx_v_nbdevdn; - int __pyx_v_matype; + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_input_arrays = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_BBANDS (wrapper)", 0); + __Pyx_RefNannySetupContext("run (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -52545,194 +53209,124 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdevup,&__pyx_mstate_global->__pyx_n_u_nbdevdn,&__pyx_mstate_global->__pyx_n_u_matype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_input_arrays,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 505, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 398, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 505, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 505, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 505, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 505, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 398, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 505, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 398, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_BBANDS", 0) < (0)) __PYX_ERR(5, 505, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "run", 0) < (0)) __PYX_ERR(2, 398, __pyx_L3_error) + if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_None)); for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_BBANDS", 0, 1, 5, i); __PYX_ERR(5, 505, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("run", 0, 1, 2, i); __PYX_ERR(2, 398, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 505, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 505, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 505, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 505, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 398, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 505, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 398, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } + if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_None)); } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 507, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - if (values[2]) { - __pyx_v_nbdevup = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdevup == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 507, __pyx_L3_error) - } else { - __pyx_v_nbdevup = ((double)((double)-4e37)); - } - if (values[3]) { - __pyx_v_nbdevdn = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_nbdevdn == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 507, __pyx_L3_error) - } else { - __pyx_v_nbdevdn = ((double)((double)-4e37)); - } - if (values[4]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 507, __pyx_L3_error) - } else { - __pyx_v_matype = ((int)((int)0)); - } + __pyx_v_self = values[0]; + __pyx_v_input_arrays = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_BBANDS", 0, 1, 5, __pyx_nargs); __PYX_ERR(5, 505, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("run", 0, 1, 2, __pyx_nargs); __PYX_ERR(2, 398, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_BBANDS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.Function.run", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 507, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_394stream_BBANDS(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype); + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_30run(__pyx_self, __pyx_v_self, __pyx_v_input_arrays); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_394stream_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; +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 - PyObject *__pyx_t_1 = NULL; + int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; + size_t __pyx_t_4; 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(5, 533, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - - __pyx_v_outrealupperband = __pyx_v_5talib_7_ta_lib_NaN; + __Pyx_RefNannySetupContext("run", 0); - __pyx_v_outrealmiddleband = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_input_arrays); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(2, 405, __pyx_L1_error) + if (__pyx_t_1) { - __pyx_v_outreallowerband = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_t_3 = __pyx_v_self; + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_input_arrays}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_input_arrays, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 406, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __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_mstate_global->__pyx_n_u_TA_BBANDS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 540, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_3 = __pyx_v_self; + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__call_function, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 407, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outrealupperband); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 541, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outrealmiddleband); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 541, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 408, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreallowerband); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 541, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 541, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 541, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2) != (0)) __PYX_ERR(5, 541, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3) != (0)) __PYX_ERR(5, 541, __pyx_L1_error); - __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; __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_AddTraceback("talib._ta_lib.Function.run", __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; @@ -52740,36 +53334,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_394stream_BBANDS(CYTHON_UNUSED PyObjec /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_397stream_BETA(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_33__call__(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_396stream_BETA, "stream_BETA(ndarray real0, ndarray real1, int timeperiod=-0x80000000)\n\nBETA(real0, real1[, timeperiod=?])\n\nBeta (Statistic Functions)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nParameters:\n timeperiod: 5\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_397stream_BETA = {"stream_BETA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_397stream_BETA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_396stream_BETA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_397stream_BETA(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_32__call__, "Function.__call__(self, *args, **kwargs)\n\nfunc_instance([input_arrays,] [parameter_args,] [input_price_series_kwargs,] [parameter_kwargs])\n\nThis is a shortcut to the outputs property that also allows setting\nthe input_arrays dict and function parameters."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_33__call__ = {"__call__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_33__call__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_32__call__}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_33__call__(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real0 = 0; - PyArrayObject *__pyx_v_real1 = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kwargs = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_BETA (wrapper)", 0); + __Pyx_RefNannySetupContext("__call__ (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -52778,565 +53372,909 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return NULL; + __Pyx_GOTREF(__pyx_v_kwargs); + __pyx_v_args = __Pyx_ArgsSlice_FASTCALL(__pyx_args, 1, __pyx_nargs); + if (unlikely(!__pyx_v_args)) { + __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0; + __Pyx_RefNannyFinishContext(); + return NULL; + } + __Pyx_GOTREF(__pyx_v_args); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 543, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 410, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 543, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 543, __pyx_L3_error) - CYTHON_FALLTHROUGH; + default: case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 543, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 410, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; - default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_BETA", 0) < (0)) __PYX_ERR(5, 543, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_BETA", 0, 2, 3, i); __PYX_ERR(5, 543, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 543, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 543, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 543, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + const Py_ssize_t used_pos_args = (kwd_pos_args < 1) ? kwd_pos_args : 1; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, __pyx_kwds_len, "__call__", 1) < (0)) __PYX_ERR(2, 410, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__call__", 0, 1, 1, i); __PYX_ERR(2, 410, __pyx_L3_error) } } - } - __pyx_v_real0 = ((PyArrayObject *)values[0]); - __pyx_v_real1 = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 545, __pyx_L3_error) + } else if (unlikely(__pyx_nargs < 1)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 410, __pyx_L3_error) } + __pyx_v_self = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_BETA", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 543, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__call__", 0, 1, 1, __pyx_nargs); __PYX_ERR(2, 410, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_BETA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(5, 545, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(5, 545, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_396stream_BETA(__pyx_self, __pyx_v_real0, __pyx_v_real1, __pyx_v_timeperiod); + __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 */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + __Pyx_DECREF(__pyx_v_args); + __Pyx_DECREF(__pyx_v_kwargs); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_396stream_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; +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs) { + PyObject *__pyx_v_local = NULL; + PyObject *__pyx_v_opt_input_values = NULL; + PyObject *__pyx_v_price_series_name_values = NULL; + PyObject *__pyx_v_input_arrays = NULL; + PyObject *__pyx_v_input_price_series_names = NULL; + PyObject *__pyx_v_i = NULL; + PyObject *__pyx_v_arg = NULL; + PyObject *__pyx_v_msg = NULL; + PyObject *__pyx_v_no_existing_input_arrays = NULL; + PyObject *__pyx_v_param_name = NULL; + PyObject *__pyx_v_value = NULL; + PyObject *__pyx_v_input_name = NULL; + PyObject *__pyx_v_n = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + size_t __pyx_t_5; + Py_ssize_t __pyx_t_6; + PyObject *(*__pyx_t_7)(PyObject *); + int __pyx_t_8; + int __pyx_t_9; + int __pyx_t_10; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + int __pyx_t_14; + PyObject *__pyx_t_15 = NULL; + Py_ssize_t __pyx_t_16; + PyObject *__pyx_t_17 = NULL; + PyObject *__pyx_t_18 = NULL; + PyObject *__pyx_t_19[5]; + PyObject *__pyx_t_20 = NULL; + PyObject *(*__pyx_t_21)(PyObject *); int __pyx_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_RefNannySetupContext("__call__", 0); + __Pyx_INCREF(__pyx_v_args); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 566, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 417, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_local = __pyx_t_1; __pyx_t_1 = 0; - __pyx_v_real0_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 568, __pyx_L1_error) + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 419, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1)); + + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 420, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __pyx_t_4; + __Pyx_INCREF(__pyx_t_3); + __pyx_t_5 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_keys, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 420, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { + __pyx_t_4 = __pyx_t_2; __Pyx_INCREF(__pyx_t_4); + __pyx_t_6 = 0; + __pyx_t_7 = NULL; + } else { + __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 420, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 420, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + for (;;) { + if (likely(!__pyx_t_7)) { + if (likely(PyList_CheckExact(__pyx_t_4))) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 420, __pyx_L1_error) + #endif + if (__pyx_t_6 >= __pyx_temp) break; + } + __pyx_t_2 = __Pyx_PyList_GetItemRefFast(__pyx_t_4, __pyx_t_6, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_6; + } else { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_4); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 420, __pyx_L1_error) + #endif + if (__pyx_t_6 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_2 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6)); + #else + __pyx_t_2 = __Pyx_PySequence_ITEM(__pyx_t_4, __pyx_t_6); + #endif + ++__pyx_t_6; + } + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 420, __pyx_L1_error) + } else { + __pyx_t_2 = __pyx_t_7(__pyx_t_4); + if (unlikely(!__pyx_t_2)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 420, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_2); + __Pyx_XDECREF_SET(__pyx_v_param_name, __pyx_t_2); + __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 419, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_param_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 419, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 419, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 419, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_param_name); + __Pyx_GIVEREF(__pyx_v_param_name); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_param_name) != (0)) __PYX_ERR(2, 419, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2) != (0)) __PYX_ERR(2, 419, __pyx_L1_error); + __pyx_t_2 = 0; + if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_3))) __PYX_ERR(2, 419, __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_v_real1_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1)); + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 421, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 570, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 422, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) { + __pyx_t_3 = __pyx_t_4; __Pyx_INCREF(__pyx_t_3); + __pyx_t_6 = 0; + __pyx_t_7 = NULL; + } else { + __pyx_t_6 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 422, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_7 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 422, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + for (;;) { + if (likely(!__pyx_t_7)) { + if (likely(PyList_CheckExact(__pyx_t_3))) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 422, __pyx_L1_error) + #endif + if (__pyx_t_6 >= __pyx_temp) break; + } + __pyx_t_4 = __Pyx_PyList_GetItemRefFast(__pyx_t_3, __pyx_t_6, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_6; + } else { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 422, __pyx_L1_error) + #endif + if (__pyx_t_6 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_6)); + #else + __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_6); + #endif + ++__pyx_t_6; + } + if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 422, __pyx_L1_error) + } else { + __pyx_t_4 = __pyx_t_7(__pyx_t_3); + if (unlikely(!__pyx_t_4)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 422, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_4); + __Pyx_XDECREF_SET(__pyx_v_n, __pyx_t_4); + __pyx_t_4 = 0; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 421, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_n); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 421, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_price_series); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 421, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 421, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_v_n); + __Pyx_GIVEREF(__pyx_v_n); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_n) != (0)) __PYX_ERR(2, 421, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4) != (0)) __PYX_ERR(2, 421, __pyx_L1_error); + __pyx_t_4 = 0; + if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_2))) __PYX_ERR(2, 421, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __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_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 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BETA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 573, __pyx_L1_error) + __pyx_t_1 = PySequence_List(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 425, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF_SET(__pyx_v_args, __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(5, 574, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 426, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; + __pyx_v_input_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - goto __pyx_L0; + __pyx_t_3 = __pyx_v_self; + __Pyx_INCREF(__pyx_t_3); + __pyx_t_5 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__input_price_series_na, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 427, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_v_input_price_series_names = __pyx_t_1; + __pyx_t_1 = 0; - /* 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; -} - + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_args); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(2, 428, __pyx_L1_error) + if (__pyx_t_9) { + } else { + __pyx_t_8 = __pyx_t_9; + goto __pyx_L10_bool_binop_done; + } + __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_args, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 428, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 428, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_9 = PyObject_IsInstance(__pyx_t_1, __pyx_t_3); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(2, 428, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_10 = (!__pyx_t_9); + __pyx_t_8 = __pyx_t_10; + __pyx_L10_bool_binop_done:; + if (__pyx_t_8) { -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_399stream_BOP(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_398stream_BOP, "stream_BOP(ndarray open, ndarray high, ndarray low, ndarray close)\n\nBOP(open, high, low, close)\n\nBalance Of Power (Momentum Indicators)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_399stream_BOP = {"stream_BOP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_399stream_BOP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_398stream_BOP}; -static PyObject *__pyx_pw_5talib_7_ta_lib_399stream_BOP(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_BOP (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 576, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 576, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 576, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 576, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 576, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_BOP", 0) < (0)) __PYX_ERR(5, 576, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_BOP", 1, 4, 4, i); __PYX_ERR(5, 576, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; + __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); + __pyx_t_3 = __pyx_mstate_global->__pyx_int_0; + if (likely(PyList_CheckExact(__pyx_v_args)) || PyTuple_CheckExact(__pyx_v_args)) { + __pyx_t_1 = __pyx_v_args; __Pyx_INCREF(__pyx_t_1); + __pyx_t_6 = 0; + __pyx_t_7 = NULL; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 576, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 576, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 576, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 576, __pyx_L3_error) + __pyx_t_6 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 429, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_7 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 429, __pyx_L1_error) } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_BOP", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 576, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_BOP", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 578, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 578, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 578, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 578, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_398stream_BOP(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + for (;;) { + if (likely(!__pyx_t_7)) { + if (likely(PyList_CheckExact(__pyx_t_1))) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 429, __pyx_L1_error) + #endif + if (__pyx_t_6 >= __pyx_temp) break; + } + __pyx_t_2 = __Pyx_PyList_GetItemRefFast(__pyx_t_1, __pyx_t_6, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_6; + } else { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 429, __pyx_L1_error) + #endif + if (__pyx_t_6 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_2 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_6)); + #else + __pyx_t_2 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_6); + #endif + ++__pyx_t_6; + } + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 429, __pyx_L1_error) + } else { + __pyx_t_2 = __pyx_t_7(__pyx_t_1); + if (unlikely(!__pyx_t_2)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 429, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_2); + __Pyx_XDECREF_SET(__pyx_v_arg, __pyx_t_2); + __pyx_t_2 = 0; + __Pyx_INCREF(__pyx_t_3); + __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_3); + __pyx_t_2 = __Pyx_PyLong_AddObjC(__pyx_t_3, __pyx_mstate_global->__pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 429, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); + __pyx_t_3 = __pyx_t_2; + __pyx_t_2 = 0; - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ARRAY_TYPES); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 430, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_8 = PyObject_IsInstance(__pyx_v_arg, __pyx_t_2); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(2, 430, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_10 = (!__pyx_t_8); + if (__pyx_t_10) { -static PyObject *__pyx_pf_5talib_7_ta_lib_398stream_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); + goto __pyx_L13_break; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 598, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __Pyx_XGOTREF(__pyx_t_13); + /*try:*/ { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 600, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_input_price_series_names, __pyx_v_i); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 434, __pyx_L15_error) + __Pyx_GOTREF(__pyx_t_2); + if (unlikely((PyDict_SetItem(__pyx_v_input_arrays, __pyx_t_2, __pyx_v_arg) < 0))) __PYX_ERR(2, 434, __pyx_L15_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + } + __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; + goto __pyx_L22_try_end; + __pyx_L15_error:; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 602, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_14 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_IndexError)))); + if (__pyx_t_14) { + __Pyx_AddTraceback("talib._ta_lib.Function.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_4, &__pyx_t_15) < 0) __PYX_ERR(2, 435, __pyx_L17_except_error) + __Pyx_XGOTREF(__pyx_t_2); + __Pyx_XGOTREF(__pyx_t_4); + __Pyx_XGOTREF(__pyx_t_15); - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + __pyx_t_16 = PyObject_Length(__pyx_v_input_price_series_names); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(2, 437, __pyx_L17_except_error) + __pyx_t_17 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_t_16, 0, ' ', 'd'); if (unlikely(!__pyx_t_17)) __PYX_ERR(2, 437, __pyx_L17_except_error) + __Pyx_GOTREF(__pyx_t_17); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 604, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_18 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__3, __pyx_v_input_price_series_names); if (unlikely(!__pyx_t_18)) __PYX_ERR(2, 438, __pyx_L17_except_error) + __Pyx_GOTREF(__pyx_t_18); + __pyx_t_19[0] = __pyx_mstate_global->__pyx_kp_u_Too_many_price_arguments_expecte; + __pyx_t_19[1] = __pyx_t_17; + __pyx_t_19[2] = __pyx_mstate_global->__pyx_kp_u__4; + __pyx_t_19[3] = __pyx_t_18; + __pyx_t_19[4] = __pyx_mstate_global->__pyx_kp_u__5; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + __pyx_t_20 = __Pyx_PyUnicode_Join(__pyx_t_19, 5, 35 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_17) + 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_18) + 1, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_18)); + if (unlikely(!__pyx_t_20)) __PYX_ERR(2, 436, __pyx_L17_except_error) + __Pyx_GOTREF(__pyx_t_20); + __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + __pyx_v_msg = ((PyObject*)__pyx_t_20); + __pyx_t_20 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 606, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_t_18 = NULL; + __pyx_t_5 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_18, __pyx_v_msg}; + __pyx_t_20 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_TypeError)), __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; + if (unlikely(!__pyx_t_20)) __PYX_ERR(2, 439, __pyx_L17_except_error) + __Pyx_GOTREF(__pyx_t_20); + } + __Pyx_Raise(__pyx_t_20, 0, 0, 0); + __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; + __PYX_ERR(2, 439, __pyx_L17_except_error) + } + goto __pyx_L17_except_error; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_L17_except_error:; + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13); + goto __pyx_L1_error; + __pyx_L22_try_end:; + } - __pyx_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_DECREF(__pyx_t_1); __pyx_t_1 = 0; + goto __pyx_L25_for_end; + __pyx_L13_break:; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + goto __pyx_L25_for_end; + __pyx_L25_for_end:; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_PANDAS_DATAFRAME); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 441, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_8 = (__pyx_t_3 != Py_None); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (__pyx_t_8) { + } else { + __pyx_t_10 = __pyx_t_8; + goto __pyx_L27_bool_binop_done; + } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BOP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 609, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 442, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_PANDAS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __pyx_t_8 = PyObject_IsInstance(__pyx_t_3, __pyx_t_1); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(2, 442, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_10 = __pyx_t_8; + __pyx_L27_bool_binop_done:; - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 610, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; + if (__pyx_t_10) { + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 443, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 443, __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; - /* 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; -} + goto __pyx_L26; + } + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 444, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_8 = (__pyx_t_3 != Py_None); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (__pyx_t_8) { + } else { + __pyx_t_10 = __pyx_t_8; + goto __pyx_L29_bool_binop_done; + } -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_401stream_CCI(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_400stream_CCI, "stream_CCI(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nCCI(high, low, close[, timeperiod=?])\n\nCommodity Channel Index (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_401stream_CCI = {"stream_CCI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_401stream_CCI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_400stream_CCI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_401stream_CCI(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CCI (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 612, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 612, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 612, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 612, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 612, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CCI", 0) < (0)) __PYX_ERR(5, 612, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CCI", 0, 3, 4, i); __PYX_ERR(5, 612, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 612, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 612, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 612, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 612, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 614, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 445, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 445, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_8 = PyObject_IsInstance(__pyx_t_3, __pyx_t_1); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(2, 445, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_10 = __pyx_t_8; + __pyx_L29_bool_binop_done:; + + if (__pyx_t_10) { + + __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 446, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __pyx_t_3 = __pyx_t_15; + __Pyx_INCREF(__pyx_t_3); + __pyx_t_5 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_is_empty, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 446, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CCI", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 612, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 614, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 614, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 614, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_400stream_CCI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + __pyx_v_no_existing_input_arrays = __pyx_t_1; + __pyx_t_1 = 0; - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + goto __pyx_L26; } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + + /*else*/ { + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 448, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(2, 448, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyBool_FromLong((!(!(!__pyx_t_10)))); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 448, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_no_existing_input_arrays = __pyx_t_1; + __pyx_t_1 = 0; } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} + __pyx_L26:; -static PyObject *__pyx_pf_5talib_7_ta_lib_400stream_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_6 = PyDict_Size(__pyx_v_input_arrays); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(2, 450, __pyx_L1_error) + __pyx_t_16 = PyObject_Length(__pyx_v_input_price_series_names); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(2, 450, __pyx_L1_error) + __pyx_t_10 = (__pyx_t_6 == __pyx_t_16); + if (__pyx_t_10) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 635, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_15 = __pyx_v_self; + __Pyx_INCREF(__pyx_t_15); + __pyx_t_5 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_15, __pyx_v_input_arrays}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_input_arrays, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 451, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + __pyx_t_16 = PyDict_Size(__pyx_v_input_arrays); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(2, 452, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyList_GetSlice(__pyx_v_args, __pyx_t_16, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 452, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 637, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + goto __pyx_L31; + } - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + __pyx_t_16 = PyDict_Size(__pyx_v_input_arrays); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(2, 453, __pyx_L1_error) + __pyx_t_8 = (__pyx_t_16 != 0); + if (!__pyx_t_8) { + } else { + __pyx_t_10 = __pyx_t_8; + goto __pyx_L32_bool_binop_done; + } + __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_v_no_existing_input_arrays); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(2, 453, __pyx_L1_error) + if (__pyx_t_8) { + } else { + __pyx_t_10 = __pyx_t_8; + goto __pyx_L32_bool_binop_done; + } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 639, __pyx_L1_error) + __pyx_t_16 = PyObject_Length(__pyx_v_args); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(2, 454, __pyx_L1_error) + __pyx_t_8 = (!(__pyx_t_16 != 0)); + if (!__pyx_t_8) { + } else { + __pyx_t_10 = __pyx_t_8; + goto __pyx_L32_bool_binop_done; + } + __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_args, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 454, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_mstate_global->__pyx_n_u_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 454, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __pyx_t_8 = PyObject_IsInstance(__pyx_t_1, __pyx_t_15); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(2, 454, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + __pyx_t_9 = (!__pyx_t_8); + __pyx_t_10 = __pyx_t_9; + __pyx_L32_bool_binop_done:; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + if (unlikely(__pyx_t_10)) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 641, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_t_16 = PyObject_Length(__pyx_v_input_price_series_names); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(2, 456, __pyx_L1_error) + __pyx_t_15 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_t_16, 0, ' ', 'd'); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 456, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_t_1 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__3, __pyx_v_input_price_series_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 457, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_19[0] = __pyx_mstate_global->__pyx_kp_u_Not_enough_price_arguments_expec; + __pyx_t_19[1] = __pyx_t_15; + __pyx_t_19[2] = __pyx_mstate_global->__pyx_kp_u__4; + __pyx_t_19[3] = __pyx_t_1; + __pyx_t_19[4] = __pyx_mstate_global->__pyx_kp_u__5; - __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_3 = __Pyx_PyUnicode_Join(__pyx_t_19, 5, 37 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_15) + 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 1, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1)); + if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 455, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_msg = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + __pyx_t_1 = NULL; + __pyx_t_5 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_v_msg}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_TypeError)), __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 458, __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, 458, __pyx_L1_error) + + } + __pyx_L31:; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CCI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 644, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_set_function_args); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 460, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_1 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 460, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __pyx_t_15 = PyDict_Copy(__pyx_v_kwargs); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 460, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_1, __pyx_t_15); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 460, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_15 = __pyx_v_self; + __Pyx_INCREF(__pyx_t_15); + __pyx_t_5 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_15, NULL}; + __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__call_function, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 461, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __pyx_v_opt_input_values; __Pyx_INCREF(__pyx_t_4); + __pyx_t_16 = 0; + for (;;) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 464, __pyx_L1_error) + #endif + if (__pyx_t_16 >= __pyx_temp) break; + } + __pyx_t_15 = __Pyx_PyList_GetItemRefFast(__pyx_t_4, __pyx_t_16, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_16; + if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 464, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + if ((likely(PyTuple_CheckExact(__pyx_t_15))) || (PyList_CheckExact(__pyx_t_15))) { + PyObject* sequence = __pyx_t_15; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(2, 464, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __Pyx_INCREF(__pyx_t_1); + __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); + __Pyx_INCREF(__pyx_t_3); + } else { + __pyx_t_1 = __Pyx_PyList_GetItemRefFast(sequence, 0, __Pyx_ReferenceSharing_SharedReference); + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 464, __pyx_L1_error) + __Pyx_XGOTREF(__pyx_t_1); + __pyx_t_3 = __Pyx_PyList_GetItemRefFast(sequence, 1, __Pyx_ReferenceSharing_SharedReference); + if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 464, __pyx_L1_error) + __Pyx_XGOTREF(__pyx_t_3); + } + #else + __pyx_t_1 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 464, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 464, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #endif + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + } else { + Py_ssize_t index = -1; + __pyx_t_2 = PyObject_GetIter(__pyx_t_15); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 464, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + __pyx_t_21 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); + index = 0; __pyx_t_1 = __pyx_t_21(__pyx_t_2); if (unlikely(!__pyx_t_1)) goto __pyx_L38_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_3 = __pyx_t_21(__pyx_t_2); if (unlikely(!__pyx_t_3)) goto __pyx_L38_unpacking_failed; + __Pyx_GOTREF(__pyx_t_3); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_21(__pyx_t_2), 2) < (0)) __PYX_ERR(2, 464, __pyx_L1_error) + __pyx_t_21 = NULL; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + goto __pyx_L39_unpacking_done; + __pyx_L38_unpacking_failed:; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_21 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(2, 464, __pyx_L1_error) + __pyx_L39_unpacking_done:; + } + __Pyx_XDECREF_SET(__pyx_v_param_name, __pyx_t_1); + __pyx_t_1 = 0; + __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_3); + __pyx_t_3 = 0; + + __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 465, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_param_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 465, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (unlikely((PyObject_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_value, __pyx_v_value) < 0))) __PYX_ERR(2, 465, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_parameters); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 466, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 466, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (unlikely((PyObject_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_parameters, __pyx_t_4) < 0))) __PYX_ERR(2, 466, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __pyx_v_price_series_name_values; __Pyx_INCREF(__pyx_t_4); + __pyx_t_16 = 0; + for (;;) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 469, __pyx_L1_error) + #endif + if (__pyx_t_16 >= __pyx_temp) break; + } + __pyx_t_3 = __Pyx_PyList_GetItemRefFast(__pyx_t_4, __pyx_t_16, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_16; + if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 469, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) { + PyObject* sequence = __pyx_t_3; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(2, 469, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_15 = PyTuple_GET_ITEM(sequence, 0); + __Pyx_INCREF(__pyx_t_15); + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); + __Pyx_INCREF(__pyx_t_1); + } else { + __pyx_t_15 = __Pyx_PyList_GetItemRefFast(sequence, 0, __Pyx_ReferenceSharing_SharedReference); + if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 469, __pyx_L1_error) + __Pyx_XGOTREF(__pyx_t_15); + __pyx_t_1 = __Pyx_PyList_GetItemRefFast(sequence, 1, __Pyx_ReferenceSharing_SharedReference); + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 469, __pyx_L1_error) + __Pyx_XGOTREF(__pyx_t_1); + } + #else + __pyx_t_15 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 469, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __pyx_t_1 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 469, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + #endif + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } else { + Py_ssize_t index = -1; + __pyx_t_2 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 469, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_21 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); + index = 0; __pyx_t_15 = __pyx_t_21(__pyx_t_2); if (unlikely(!__pyx_t_15)) goto __pyx_L43_unpacking_failed; + __Pyx_GOTREF(__pyx_t_15); + index = 1; __pyx_t_1 = __pyx_t_21(__pyx_t_2); if (unlikely(!__pyx_t_1)) goto __pyx_L43_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_21(__pyx_t_2), 2) < (0)) __PYX_ERR(2, 469, __pyx_L1_error) + __pyx_t_21 = NULL; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + goto __pyx_L44_unpacking_done; + __pyx_L43_unpacking_failed:; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_21 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(2, 469, __pyx_L1_error) + __pyx_L44_unpacking_done:; + } + __Pyx_XDECREF_SET(__pyx_v_input_name, __pyx_t_15); + __pyx_t_15 = 0; + __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 470, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_input_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 470, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely((PyObject_SetItem(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_price_series, __pyx_v_value) < 0))) __PYX_ERR(2, 470, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 471, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 471, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely((PyObject_SetItem(__pyx_t_3, __pyx_v_input_name, __pyx_v_value) < 0))) __PYX_ERR(2, 471, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 645, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 473, __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_AddTraceback("talib._ta_lib.stream_CCI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_15); + __Pyx_XDECREF(__pyx_t_17); + __Pyx_XDECREF(__pyx_t_18); + __Pyx_XDECREF(__pyx_t_20); + __Pyx_AddTraceback("talib._ta_lib.Function.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_local); + __Pyx_XDECREF(__pyx_v_opt_input_values); + __Pyx_XDECREF(__pyx_v_price_series_name_values); + __Pyx_XDECREF(__pyx_v_input_arrays); + __Pyx_XDECREF(__pyx_v_input_price_series_names); + __Pyx_XDECREF(__pyx_v_i); + __Pyx_XDECREF(__pyx_v_arg); + __Pyx_XDECREF(__pyx_v_msg); + __Pyx_XDECREF(__pyx_v_no_existing_input_arrays); + __Pyx_XDECREF(__pyx_v_param_name); + __Pyx_XDECREF(__pyx_v_value); + __Pyx_XDECREF(__pyx_v_input_name); + __Pyx_XDECREF(__pyx_v_n); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -53344,37 +54282,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_400stream_CCI(CYTHON_UNUSED PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_403stream_CDL2CROWS(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_35__input_price_series_names(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_402stream_CDL2CROWS, "stream_CDL2CROWS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL2CROWS(open, high, low, close)\n\nTwo Crows (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_403stream_CDL2CROWS = {"stream_CDL2CROWS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_403stream_CDL2CROWS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_402stream_CDL2CROWS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_403stream_CDL2CROWS(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_34__input_price_series_names, "Function.__input_price_series_names(self)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_35__input_price_series_names = {"__input_price_series_names", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_35__input_price_series_names, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_34__input_price_series_names}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_35__input_price_series_names(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + PyObject *__pyx_v_self = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDL2CROWS (wrapper)", 0); + __Pyx_RefNannySetupContext("__input_price_series_names (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -53384,168 +54319,242 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 647, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 476, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 647, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 647, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 647, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 647, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 476, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDL2CROWS", 0) < (0)) __PYX_ERR(5, 647, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDL2CROWS", 1, 4, 4, i); __PYX_ERR(5, 647, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__input_price_series_names", 0) < (0)) __PYX_ERR(2, 476, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__input_price_series_names", 1, 1, 1, i); __PYX_ERR(2, 476, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 647, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 647, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 647, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 647, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 476, __pyx_L3_error) } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + __pyx_v_self = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDL2CROWS", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 647, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__input_price_series_names", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 476, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDL2CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.Function.__input_price_series_names", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 649, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 649, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 649, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 649, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_402stream_CDL2CROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_34__input_price_series_names(__pyx_self, __pyx_v_self); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_402stream_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; +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_34__input_price_series_names(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { + PyObject *__pyx_v_local = NULL; + PyObject *__pyx_v_input_price_series_names = NULL; + PyObject *__pyx_v_input_name = NULL; + PyObject *__pyx_v_price_series = NULL; + PyObject *__pyx_v_name = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - 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); + PyObject *__pyx_t_2 = NULL; + Py_ssize_t __pyx_t_3; + PyObject *(*__pyx_t_4)(PyObject *); + PyObject *__pyx_t_5 = NULL; + int __pyx_t_6; + Py_ssize_t __pyx_t_7; + PyObject *(*__pyx_t_8)(PyObject *); + int __pyx_t_9; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__input_price_series_names", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 669, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 477, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_local = __pyx_t_1; __pyx_t_1 = 0; - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 671, __pyx_L1_error) + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 478, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_input_price_series_names = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 673, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 479, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 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_3 = 0; + __pyx_t_4 = NULL; + } else { + __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 479, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 479, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + for (;;) { + if (likely(!__pyx_t_4)) { + if (likely(PyList_CheckExact(__pyx_t_2))) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 479, __pyx_L1_error) + #endif + if (__pyx_t_3 >= __pyx_temp) break; + } + __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_2, __pyx_t_3, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_3; + } else { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 479, __pyx_L1_error) + #endif + if (__pyx_t_3 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3)); + #else + __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_3); + #endif + ++__pyx_t_3; + } + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 479, __pyx_L1_error) + } else { + __pyx_t_1 = __pyx_t_4(__pyx_t_2); + if (unlikely(!__pyx_t_1)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 479, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_1); + __Pyx_XDECREF_SET(__pyx_v_input_name, __pyx_t_1); + __pyx_t_1 = 0; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 480, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_input_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 480, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_price_series); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 480, __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_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 675, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_6 = PyList_Check(__pyx_v_price_series); + if (__pyx_t_6) { - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + if (likely(PyList_CheckExact(__pyx_v_price_series)) || PyTuple_CheckExact(__pyx_v_price_series)) { + __pyx_t_1 = __pyx_v_price_series; __Pyx_INCREF(__pyx_t_1); + __pyx_t_7 = 0; + __pyx_t_8 = NULL; + } else { + __pyx_t_7 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_price_series); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 482, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_8 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 482, __pyx_L1_error) + } + for (;;) { + if (likely(!__pyx_t_8)) { + if (likely(PyList_CheckExact(__pyx_t_1))) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 482, __pyx_L1_error) + #endif + if (__pyx_t_7 >= __pyx_temp) break; + } + __pyx_t_5 = __Pyx_PyList_GetItemRefFast(__pyx_t_1, __pyx_t_7, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_7; + } else { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 482, __pyx_L1_error) + #endif + if (__pyx_t_7 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_5 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_7)); + #else + __pyx_t_5 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_7); + #endif + ++__pyx_t_7; + } + if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 482, __pyx_L1_error) + } else { + __pyx_t_5 = __pyx_t_8(__pyx_t_1); + if (unlikely(!__pyx_t_5)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 482, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_5); + __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_5); + __pyx_t_5 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 677, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_input_price_series_names, __pyx_v_name); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(2, 483, __pyx_L1_error) - __pyx_v_outinteger = 0; + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 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)); + goto __pyx_L5; + } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL2CROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 680, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /*else*/ { + __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_input_price_series_names, __pyx_v_price_series); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(2, 485, __pyx_L1_error) + } + __pyx_L5:; + + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 681, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; + __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_AddTraceback("talib._ta_lib.stream_CDL2CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF(__pyx_v_local); + __Pyx_XDECREF(__pyx_v_input_price_series_names); + __Pyx_XDECREF(__pyx_v_input_name); + __Pyx_XDECREF(__pyx_v_price_series); + __Pyx_XDECREF(__pyx_v_name); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -53553,37 +54562,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_402stream_CDL2CROWS(CYTHON_UNUSED PyOb /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_405stream_CDL3BLACKCROWS(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_37__call_function(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_404stream_CDL3BLACKCROWS, "stream_CDL3BLACKCROWS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3BLACKCROWS(open, high, low, close)\n\nThree Black Crows (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_405stream_CDL3BLACKCROWS = {"stream_CDL3BLACKCROWS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_405stream_CDL3BLACKCROWS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_404stream_CDL3BLACKCROWS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_405stream_CDL3BLACKCROWS(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_36__call_function, "Function.__call_function(self)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_37__call_function = {"__call_function", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_37__call_function, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_36__call_function}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_37__call_function(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + PyObject *__pyx_v_self = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDL3BLACKCROWS (wrapper)", 0); + __Pyx_RefNannySetupContext("__call_function (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -53593,377 +54599,486 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 683, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 488, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 683, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 683, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 683, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 683, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 488, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDL3BLACKCROWS", 0) < (0)) __PYX_ERR(5, 683, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDL3BLACKCROWS", 1, 4, 4, i); __PYX_ERR(5, 683, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__call_function", 0) < (0)) __PYX_ERR(2, 488, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__call_function", 1, 1, 1, i); __PYX_ERR(2, 488, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 683, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 683, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 683, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 683, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 488, __pyx_L3_error) } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + __pyx_v_self = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDL3BLACKCROWS", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 683, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__call_function", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 488, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDL3BLACKCROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.Function.__call_function", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 685, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 685, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 685, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 685, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_404stream_CDL3BLACKCROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_36__call_function(__pyx_self, __pyx_v_self); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_404stream_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; +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_36__call_function(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { + PyObject *__pyx_v_local = NULL; + PyObject *__pyx_v_input_price_series_names = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_price_series = NULL; + PyObject *__pyx_v_series = NULL; + PyObject *__pyx_v_opt_input = NULL; + PyObject *__pyx_v_value = NULL; + PyObject *__pyx_v_results = NULL; + PyObject *__pyx_v_keys = NULL; + PyObject *__pyx_v_i = NULL; + PyObject *__pyx_v_output = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + Py_ssize_t __pyx_t_4; + PyObject *(*__pyx_t_5)(PyObject *); + PyObject *__pyx_t_6 = NULL; + int __pyx_t_7; + int __pyx_t_8; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + int __pyx_t_11; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("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_RefNannySetupContext("__call_function", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 705, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 489, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_local = __pyx_t_1; __pyx_t_1 = 0; - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 707, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_2 = __pyx_v_self; + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__input_price_series_na, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 490, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_v_input_price_series_names = __pyx_t_1; __pyx_t_1 = 0; - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 709, __pyx_L1_error) + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 493, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_args = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 711, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + if (likely(PyList_CheckExact(__pyx_v_input_price_series_names)) || PyTuple_CheckExact(__pyx_v_input_price_series_names)) { + __pyx_t_1 = __pyx_v_input_price_series_names; __Pyx_INCREF(__pyx_t_1); + __pyx_t_4 = 0; + __pyx_t_5 = NULL; + } else { + __pyx_t_4 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_input_price_series_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 494, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 494, __pyx_L1_error) + } + for (;;) { + if (likely(!__pyx_t_5)) { + if (likely(PyList_CheckExact(__pyx_t_1))) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 494, __pyx_L1_error) + #endif + if (__pyx_t_4 >= __pyx_temp) break; + } + __pyx_t_2 = __Pyx_PyList_GetItemRefFast(__pyx_t_1, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_4; + } else { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 494, __pyx_L1_error) + #endif + if (__pyx_t_4 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_2 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4)); + #else + __pyx_t_2 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_4); + #endif + ++__pyx_t_4; + } + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 494, __pyx_L1_error) + } else { + __pyx_t_2 = __pyx_t_5(__pyx_t_1); + if (unlikely(!__pyx_t_2)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 494, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_2); + __Pyx_XDECREF_SET(__pyx_v_price_series, __pyx_t_2); + __pyx_t_2 = 0; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 495, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_price_series); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 495, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_XDECREF_SET(__pyx_v_series, __pyx_t_6); + __pyx_t_6 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 713, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_PANDAS_SERIES); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 496, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = (__pyx_t_6 != Py_None); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (__pyx_t_8) { + } else { + __pyx_t_7 = __pyx_t_8; + goto __pyx_L6_bool_binop_done; + } - __pyx_v_outinteger = 0; + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_PANDAS_SERIES); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 497, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = PyObject_IsInstance(__pyx_v_series, __pyx_t_6); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(2, 497, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_7 = __pyx_t_8; + __pyx_L6_bool_binop_done:; - __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)); + if (__pyx_t_7) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3BLACKCROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 716, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_series, __pyx_mstate_global->__pyx_n_u_values); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 498, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_2 = __pyx_t_9; + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)(&PyFloat_Type))}; + __pyx_t_6 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_astype, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 498, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + } + __Pyx_DECREF_SET(__pyx_v_series, __pyx_t_6); + __pyx_t_6 = 0; - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 717, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; + goto __pyx_L5; + } + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_POLARS_SERIES); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 499, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = (__pyx_t_6 != Py_None); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (__pyx_t_8) { + } else { + __pyx_t_7 = __pyx_t_8; + goto __pyx_L8_bool_binop_done; + } - /* 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; -} + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_POLARS_SERIES); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 500, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = PyObject_IsInstance(__pyx_v_series, __pyx_t_6); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(2, 500, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_7 = __pyx_t_8; + __pyx_L8_bool_binop_done:; + if (__pyx_t_7) { -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_407stream_CDL3INSIDE(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_406stream_CDL3INSIDE, "stream_CDL3INSIDE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3INSIDE(open, high, low, close)\n\nThree Inside Up/Down (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_407stream_CDL3INSIDE = {"stream_CDL3INSIDE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_407stream_CDL3INSIDE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_406stream_CDL3INSIDE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_407stream_CDL3INSIDE(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDL3INSIDE (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 719, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 719, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 719, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 719, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 719, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; + __pyx_t_10 = __pyx_v_series; + __Pyx_INCREF(__pyx_t_10); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_10, NULL}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_to_numpy, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 501, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDL3INSIDE", 0) < (0)) __PYX_ERR(5, 719, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDL3INSIDE", 1, 4, 4, i); __PYX_ERR(5, 719, __pyx_L3_error) } + __pyx_t_9 = __pyx_t_2; + __Pyx_INCREF(__pyx_t_9); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, ((PyObject *)(&PyFloat_Type))}; + __pyx_t_6 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_astype, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 501, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 719, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 719, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 719, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 719, __pyx_L3_error) + __Pyx_DECREF_SET(__pyx_v_series, __pyx_t_6); + __pyx_t_6 = 0; + } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDL3INSIDE", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 719, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_CDL3INSIDE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 721, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 721, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 721, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 721, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_406stream_CDL3INSIDE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_L5:; + + __pyx_t_11 = __Pyx_PyList_Append(__pyx_v_args, __pyx_v_series); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(2, 502, __pyx_L1_error) - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -static PyObject *__pyx_pf_5talib_7_ta_lib_406stream_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(5, 741, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 503, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { + __pyx_t_6 = __pyx_t_1; __Pyx_INCREF(__pyx_t_6); + __pyx_t_4 = 0; + __pyx_t_5 = NULL; + } else { + __pyx_t_4 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 503, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 503, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + for (;;) { + if (likely(!__pyx_t_5)) { + if (likely(PyList_CheckExact(__pyx_t_6))) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_6); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 503, __pyx_L1_error) + #endif + if (__pyx_t_4 >= __pyx_temp) break; + } + __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_6, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_4; + } else { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_6); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 503, __pyx_L1_error) + #endif + if (__pyx_t_4 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_4)); + #else + __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_6, __pyx_t_4); + #endif + ++__pyx_t_4; + } + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 503, __pyx_L1_error) + } else { + __pyx_t_1 = __pyx_t_5(__pyx_t_6); + if (unlikely(!__pyx_t_1)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 503, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_1); + __Pyx_XDECREF_SET(__pyx_v_opt_input, __pyx_t_1); + __pyx_t_1 = 0; - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + __pyx_t_2 = __pyx_v_self; + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_opt_input}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__get_opt_input_value, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 504, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __Pyx_XDECREF_SET(__pyx_v_value, __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(5, 743, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_11 = __Pyx_PyList_Append(__pyx_v_args, __pyx_v_value); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(2, 505, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + } + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 745, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_func_object); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 508, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_1 = PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 508, __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_PyObject_Call(__pyx_t_6, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 508, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_results = __pyx_t_2; + __pyx_t_2 = 0; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + __pyx_t_7 = __Pyx_TypeCheck(__pyx_v_results, __pyx_mstate_global->__pyx_ptype_5numpy_ndarray); + if (__pyx_t_7) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 747, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 510, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_1 = __pyx_t_6; + __Pyx_INCREF(__pyx_t_1); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_1, NULL}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_keys, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 510, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __pyx_v_keys = __pyx_t_2; + __pyx_t_2 = 0; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + __pyx_t_7 = PyList_Check(__pyx_v_keys); + __pyx_t_8 = (!__pyx_t_7); + if (__pyx_t_8) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 749, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_t_2 = PySequence_List(__pyx_v_keys); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 512, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_keys, __pyx_t_2); + __pyx_t_2 = 0; - __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_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 513, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_keys, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 513, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (unlikely((PyObject_SetItem(__pyx_t_2, __pyx_t_6, __pyx_v_results) < 0))) __PYX_ERR(2, 513, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3INSIDE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 752, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + goto __pyx_L14; + } - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 753, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; + /*else*/ { + __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); + __pyx_t_6 = __pyx_mstate_global->__pyx_int_0; + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 515, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { + __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); + __pyx_t_4 = 0; + __pyx_t_5 = NULL; + } else { + __pyx_t_4 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 515, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 515, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + for (;;) { + if (likely(!__pyx_t_5)) { + if (likely(PyList_CheckExact(__pyx_t_1))) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 515, __pyx_L1_error) + #endif + if (__pyx_t_4 >= __pyx_temp) break; + } + __pyx_t_2 = __Pyx_PyList_GetItemRefFast(__pyx_t_1, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_4; + } else { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 515, __pyx_L1_error) + #endif + if (__pyx_t_4 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_2 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4)); + #else + __pyx_t_2 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_4); + #endif + ++__pyx_t_4; + } + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 515, __pyx_L1_error) + } else { + __pyx_t_2 = __pyx_t_5(__pyx_t_1); + if (unlikely(!__pyx_t_2)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 515, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_2); + __Pyx_XDECREF_SET(__pyx_v_output, __pyx_t_2); + __pyx_t_2 = 0; + __Pyx_INCREF(__pyx_t_6); + __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_6); + __pyx_t_2 = __Pyx_PyLong_AddObjC(__pyx_t_6, __pyx_mstate_global->__pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 515, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_6); + __pyx_t_6 = __pyx_t_2; + __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_results, __pyx_v_i); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 516, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 516, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + if (unlikely((PyObject_SetItem(__pyx_t_9, __pyx_v_output, __pyx_t_2) < 0))) __PYX_ERR(2, 516, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } + __pyx_L14:; + + if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs_valid, Py_True) < (0)) __PYX_ERR(2, 517, __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_AddTraceback("talib._ta_lib.stream_CDL3INSIDE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("talib._ta_lib.Function.__call_function", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF(__pyx_v_local); + __Pyx_XDECREF(__pyx_v_input_price_series_names); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_price_series); + __Pyx_XDECREF(__pyx_v_series); + __Pyx_XDECREF(__pyx_v_opt_input); + __Pyx_XDECREF(__pyx_v_value); + __Pyx_XDECREF(__pyx_v_results); + __Pyx_XDECREF(__pyx_v_keys); + __Pyx_XDECREF(__pyx_v_i); + __Pyx_XDECREF(__pyx_v_output); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -53971,37 +55086,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_406stream_CDL3INSIDE(CYTHON_UNUSED PyO /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_409stream_CDL3LINESTRIKE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_39__check_opt_input_value(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_408stream_CDL3LINESTRIKE, "stream_CDL3LINESTRIKE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3LINESTRIKE(open, high, low, close)\n\nThree-Line Strike (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_409stream_CDL3LINESTRIKE = {"stream_CDL3LINESTRIKE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_409stream_CDL3LINESTRIKE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_408stream_CDL3LINESTRIKE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_409stream_CDL3LINESTRIKE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_38__check_opt_input_value, "Function.__check_opt_input_value(self, input_name, value)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_39__check_opt_input_value = {"__check_opt_input_value", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_39__check_opt_input_value, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_38__check_opt_input_value}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_39__check_opt_input_value(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_input_name = 0; + PyObject *__pyx_v_value = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDL3LINESTRIKE (wrapper)", 0); + __Pyx_RefNannySetupContext("__check_opt_input_value (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -54011,168 +55125,237 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_input_name,&__pyx_mstate_global->__pyx_n_u_value,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 755, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 519, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 755, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 755, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(2, 519, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 755, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 519, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 755, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 519, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDL3LINESTRIKE", 0) < (0)) __PYX_ERR(5, 755, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDL3LINESTRIKE", 1, 4, 4, i); __PYX_ERR(5, 755, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__check_opt_input_value", 0) < (0)) __PYX_ERR(2, 519, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__check_opt_input_value", 1, 3, 3, i); __PYX_ERR(2, 519, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 755, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 519, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 755, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 519, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 755, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 755, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(2, 519, __pyx_L3_error) } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + __pyx_v_self = values[0]; + __pyx_v_input_name = values[1]; + __pyx_v_value = values[2]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDL3LINESTRIKE", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 755, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__check_opt_input_value", 1, 3, 3, __pyx_nargs); __PYX_ERR(2, 519, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDL3LINESTRIKE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 757, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 757, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 757, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 757, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_408stream_CDL3LINESTRIKE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __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 */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_408stream_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; +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; - npy_intp __pyx_t_2; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + int __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9[7]; + size_t __pyx_t_10; 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_RefNannySetupContext("__check_opt_input_value", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 777, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 520, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 520, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_input_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 520, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_type_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 520, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_type_ = __pyx_t_2; + __pyx_t_2 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 779, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_type_); + __pyx_t_2 = __pyx_v_type_; + __pyx_t_1 = __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInput_IntegerList); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 521, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_4 = PyObject_RichCompare(__pyx_t_2, __pyx_t_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 521, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(2, 521, __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_PyLong_From_TA_OptInputParameterType(TA_OptInput_IntegerRange); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 521, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_1 = PyObject_RichCompare(__pyx_t_2, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 521, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(2, 521, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_3 = __pyx_t_5; + __pyx_L4_bool_binop_done:; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_5 = __pyx_t_3; + if (__pyx_t_5) { - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + __Pyx_INCREF((PyObject *)(&PyLong_Type)); + __Pyx_DECREF_SET(__pyx_v_type_, ((PyObject *)(&PyLong_Type))); + + goto __pyx_L3; + } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 781, __pyx_L1_error) + __Pyx_INCREF(__pyx_v_type_); + __pyx_t_2 = __pyx_v_type_; + __pyx_t_1 = __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInput_RealList); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 523, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_4 = PyObject_RichCompare(__pyx_t_2, __pyx_t_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 523, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(2, 523, __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_PyLong_From_TA_OptInputParameterType(TA_OptInput_RealRange); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 523, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_1 = PyObject_RichCompare(__pyx_t_2, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 523, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(2, 523, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_5 = __pyx_t_3; + __pyx_L6_bool_binop_done:; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_3 = __pyx_t_5; + if (__pyx_t_3) { - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + __Pyx_INCREF((PyObject *)(&PyFloat_Type)); + __Pyx_DECREF_SET(__pyx_v_type_, ((PyObject *)(&PyFloat_Type))); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 783, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + } + __pyx_L3:; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + __pyx_t_3 = PyObject_IsInstance(__pyx_v_value, __pyx_v_type_); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 526, __pyx_L1_error) + if (__pyx_t_3) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 785, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(Py_True); + __pyx_r = Py_True; + goto __pyx_L0; - __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_3 = (__pyx_v_value != Py_None); + if (unlikely(__pyx_t_3)) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3LINESTRIKE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 788, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = NULL; + + __pyx_t_4 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_input_name), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 531, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_type_, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 531, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_6), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 531, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(__pyx_v_value)), __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 531, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_6), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 531, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_9[0] = __pyx_mstate_global->__pyx_kp_u_Invalid_parameter_value_for; + __pyx_t_9[1] = __pyx_t_4; + __pyx_t_9[2] = __pyx_mstate_global->__pyx_kp_u_expected; + __pyx_t_9[3] = __pyx_t_7; + __pyx_t_9[4] = __pyx_mstate_global->__pyx_kp_u_got; + __pyx_t_9[5] = __pyx_t_8; + __pyx_t_9[6] = __pyx_mstate_global->__pyx_kp_u__5; + + __pyx_t_6 = __Pyx_PyUnicode_Join(__pyx_t_9, 7, 28 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4) + 11 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_7) + 6 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8) + 1, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8)); + if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 530, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_10 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_TypeError)), __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 529, __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, 529, __pyx_L1_error) + + } __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 789, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; + __Pyx_INCREF(Py_False); + __pyx_r = Py_False; 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_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("talib._ta_lib.Function.__check_opt_input_value", __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_XDECREF(__pyx_v_type_); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -54180,37 +55363,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_408stream_CDL3LINESTRIKE(CYTHON_UNUSED /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_411stream_CDL3OUTSIDE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_41__get_opt_input_value(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_410stream_CDL3OUTSIDE, "stream_CDL3OUTSIDE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3OUTSIDE(open, high, low, close)\n\nThree Outside Up/Down (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_411stream_CDL3OUTSIDE = {"stream_CDL3OUTSIDE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_411stream_CDL3OUTSIDE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_410stream_CDL3OUTSIDE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_411stream_CDL3OUTSIDE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_40__get_opt_input_value, "Function.__get_opt_input_value(self, input_name)\n\nReturns the user-set value if there is one, otherwise the default."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_41__get_opt_input_value = {"__get_opt_input_value", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_41__get_opt_input_value, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_40__get_opt_input_value}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_41__get_opt_input_value(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_input_name = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDL3OUTSIDE (wrapper)", 0); + __Pyx_RefNannySetupContext("__get_opt_input_value (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -54220,168 +55401,121 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_input_name,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 791, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 534, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 791, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 791, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 791, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 534, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 791, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 534, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDL3OUTSIDE", 0) < (0)) __PYX_ERR(5, 791, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDL3OUTSIDE", 1, 4, 4, i); __PYX_ERR(5, 791, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__get_opt_input_value", 0) < (0)) __PYX_ERR(2, 534, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__get_opt_input_value", 1, 2, 2, i); __PYX_ERR(2, 534, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 791, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 534, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 791, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 791, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 791, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 534, __pyx_L3_error) } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + __pyx_v_self = values[0]; + __pyx_v_input_name = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDL3OUTSIDE", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 791, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__get_opt_input_value", 1, 2, 2, __pyx_nargs); __PYX_ERR(2, 534, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDL3OUTSIDE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 793, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 793, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 793, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 793, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_410stream_CDL3OUTSIDE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __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 */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_410stream_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; +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_40__get_opt_input_value(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_name) { + PyObject *__pyx_v_local = NULL; + PyObject *__pyx_v_value = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDL3OUTSIDE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("__get_opt_input_value", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 813, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 538, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_local = __pyx_t_1; __pyx_t_1 = 0; - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 815, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 539, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 817, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_input_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 539, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 539, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_value = __pyx_t_1; __pyx_t_1 = 0; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 819, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 821, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - - __pyx_v_outinteger = 0; + __pyx_t_3 = (__pyx_v_value == Py_None); + if (__pyx_t_3) { - __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_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 541, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_input_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 541, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_default_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 541, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3OUTSIDE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 824, __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_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 825, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; + __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_AddTraceback("talib._ta_lib.stream_CDL3OUTSIDE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF(__pyx_v_local); + __Pyx_XDECREF(__pyx_v_value); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -54389,37 +55523,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_410stream_CDL3OUTSIDE(CYTHON_UNUSED Py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_413stream_CDL3STARSINSOUTH(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_43__repr__(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_412stream_CDL3STARSINSOUTH, "stream_CDL3STARSINSOUTH(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3STARSINSOUTH(open, high, low, close)\n\nThree Stars In The South (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_413stream_CDL3STARSINSOUTH = {"stream_CDL3STARSINSOUTH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_413stream_CDL3STARSINSOUTH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_412stream_CDL3STARSINSOUTH}; -static PyObject *__pyx_pw_5talib_7_ta_lib_413stream_CDL3STARSINSOUTH(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_42__repr__, "Function.__repr__(self)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_43__repr__ = {"__repr__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_43__repr__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_42__repr__}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_43__repr__(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + PyObject *__pyx_v_self = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDL3STARSINSOUTH (wrapper)", 0); + __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -54429,168 +55560,82 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 827, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 544, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 827, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 827, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 827, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 827, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 544, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDL3STARSINSOUTH", 0) < (0)) __PYX_ERR(5, 827, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDL3STARSINSOUTH", 1, 4, 4, i); __PYX_ERR(5, 827, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__repr__", 0) < (0)) __PYX_ERR(2, 544, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__repr__", 1, 1, 1, i); __PYX_ERR(2, 544, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 827, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 827, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 827, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 827, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 544, __pyx_L3_error) } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + __pyx_v_self = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDL3STARSINSOUTH", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 827, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__repr__", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 544, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDL3STARSINSOUTH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.Function.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 829, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 829, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 829, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 829, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_412stream_CDL3STARSINSOUTH(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_42__repr__(__pyx_self, __pyx_v_self); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_412stream_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; +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; - npy_intp __pyx_t_2; + PyObject *__pyx_t_2 = NULL; 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(5, 849, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 851, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 853, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 855, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 857, __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_mstate_global->__pyx_n_u_TA_CDL3STARSINSOUTH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 860, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("__repr__", 0); __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 861, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 545, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; + __pyx_t_2 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_s_2, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 545, __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_AddTraceback("talib._ta_lib.stream_CDL3STARSINSOUTH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.Function.__repr__", __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; @@ -54598,37 +55643,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_412stream_CDL3STARSINSOUTH(CYTHON_UNUS /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_415stream_CDL3WHITESOLDIERS(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_45__unicode__(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_414stream_CDL3WHITESOLDIERS, "stream_CDL3WHITESOLDIERS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3WHITESOLDIERS(open, high, low, close)\n\nThree Advancing White Soldiers (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_415stream_CDL3WHITESOLDIERS = {"stream_CDL3WHITESOLDIERS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_415stream_CDL3WHITESOLDIERS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_414stream_CDL3WHITESOLDIERS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_415stream_CDL3WHITESOLDIERS(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_44__unicode__, "Function.__unicode__(self)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_45__unicode__ = {"__unicode__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_45__unicode__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_44__unicode__}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_45__unicode__(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + PyObject *__pyx_v_self = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDL3WHITESOLDIERS (wrapper)", 0); + __Pyx_RefNannySetupContext("__unicode__ (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -54638,168 +55680,91 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 863, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 547, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 863, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 863, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 863, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 863, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 547, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDL3WHITESOLDIERS", 0) < (0)) __PYX_ERR(5, 863, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDL3WHITESOLDIERS", 1, 4, 4, i); __PYX_ERR(5, 863, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__unicode__", 0) < (0)) __PYX_ERR(2, 547, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__unicode__", 1, 1, 1, i); __PYX_ERR(2, 547, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 863, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 863, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 863, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 863, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 547, __pyx_L3_error) } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + __pyx_v_self = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDL3WHITESOLDIERS", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 863, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__unicode__", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 547, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDL3WHITESOLDIERS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.Function.__unicode__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 865, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 865, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 865, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 865, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_414stream_CDL3WHITESOLDIERS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_44__unicode__(__pyx_self, __pyx_v_self); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_414stream_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; +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; - npy_intp __pyx_t_2; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("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(5, 885, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 887, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 889, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 891, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 893, __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_mstate_global->__pyx_n_u_TA_CDL3WHITESOLDIERS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 896, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("__unicode__", 0); __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 897, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; + __pyx_t_2 = __pyx_v_self; + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_str, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 548, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_2 = __Pyx_PyObject_Unicode(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 548, __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_AddTraceback("talib._ta_lib.stream_CDL3WHITESOLDIERS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.Function.__unicode__", __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; @@ -54807,38 +55772,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_414stream_CDL3WHITESOLDIERS(CYTHON_UNU /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_417stream_CDLABANDONEDBABY(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_47__str__(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_416stream_CDLABANDONEDBABY, "stream_CDLABANDONEDBABY(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\n\nCDLABANDONEDBABY(open, high, low, close[, penetration=?])\n\nAbandoned Baby (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_417stream_CDLABANDONEDBABY = {"stream_CDLABANDONEDBABY", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_417stream_CDLABANDONEDBABY, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_416stream_CDLABANDONEDBABY}; -static PyObject *__pyx_pw_5talib_7_ta_lib_417stream_CDLABANDONEDBABY(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_46__str__, "Function.__str__(self)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_47__str__ = {"__str__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_47__str__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_46__str__}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_47__str__(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - double __pyx_v_penetration; + PyObject *__pyx_v_self = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLABANDONEDBABY (wrapper)", 0); + __Pyx_RefNannySetupContext("__str__ (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -54848,184 +55809,187 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 899, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 550, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 899, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 899, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 899, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 899, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 899, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 550, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLABANDONEDBABY", 0) < (0)) __PYX_ERR(5, 899, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLABANDONEDBABY", 0, 4, 5, i); __PYX_ERR(5, 899, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 899, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 899, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 899, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 899, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 899, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__str__", 0) < (0)) __PYX_ERR(2, 550, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__str__", 1, 1, 1, i); __PYX_ERR(2, 550, __pyx_L3_error) } } - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 901, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_penetration = ((double)((double)0.3)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 550, __pyx_L3_error) } + __pyx_v_self = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLABANDONEDBABY", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 899, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__str__", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 550, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLABANDONEDBABY", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.Function.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 901, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 901, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 901, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 901, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_416stream_CDLABANDONEDBABY(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_46__str__(__pyx_self, __pyx_v_self); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_416stream_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; +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; - npy_intp __pyx_t_2; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + size_t __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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_RefNannySetupContext("__str__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 923, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_get_defaults_and_docs); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 551, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 551, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); + assert(__pyx_t_2); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_3, __pyx__function); + __pyx_t_5 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 551, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_1, 1, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 551, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 925, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("talib._ta_lib.Function.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 927, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_431_ta_getGroupTable(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_430_ta_getGroupTable, "_ta_getGroupTable()\n\nReturns the list of available TALIB function group names. *slow*"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_431_ta_getGroupTable = {"_ta_getGroupTable", (PyCFunction)__pyx_pw_5talib_7_ta_lib_431_ta_getGroupTable, METH_NOARGS, __pyx_doc_5talib_7_ta_lib_430_ta_getGroupTable}; +static PyObject *__pyx_pw_5talib_7_ta_lib_431_ta_getGroupTable(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("_ta_getGroupTable (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_430_ta_getGroupTable(__pyx_self); - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 929, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_430_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_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_GroupTableAlloc, TA_GroupTableAlloc((&__pyx_v_table)), 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 569, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 931, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 570, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_groups = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_v_outinteger = 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_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_PyBytes_FromString((*(&(__pyx_v_table->string[__pyx_v_i])))); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 572, __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(2, 572, __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_mstate_global->__pyx_n_u_TA_CDLABANDONEDBABY, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 934, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_GroupTableFree, TA_GroupTableFree(__pyx_v_table), 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 573, __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_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 935, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; + __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.stream_CDLABANDONEDBABY", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib._ta_getGroupTable", __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_XDECREF(__pyx_v_groups); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -55033,37 +55997,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_416stream_CDLABANDONEDBABY(CYTHON_UNUS /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_419stream_CDLADVANCEBLOCK(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_433_ta_getFuncTable(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_418stream_CDLADVANCEBLOCK, "stream_CDLADVANCEBLOCK(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLADVANCEBLOCK(open, high, low, close)\n\nAdvance Block (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_419stream_CDLADVANCEBLOCK = {"stream_CDLADVANCEBLOCK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_419stream_CDLADVANCEBLOCK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_418stream_CDLADVANCEBLOCK}; -static PyObject *__pyx_pw_5talib_7_ta_lib_419stream_CDLADVANCEBLOCK(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_432_ta_getFuncTable, "_ta_getFuncTable(char *group)\n\nReturns a list of the functions for the specified group name. *slow*"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_433_ta_getFuncTable = {"_ta_getFuncTable", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_433_ta_getFuncTable, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_432_ta_getFuncTable}; +static PyObject *__pyx_pw_5talib_7_ta_lib_433_ta_getFuncTable(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + char *__pyx_v_group; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLADVANCEBLOCK (wrapper)", 0); + __Pyx_RefNannySetupContext("_ta_getFuncTable (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -55073,168 +56034,107 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_group,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 937, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 576, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 937, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 937, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 937, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 937, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 576, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLADVANCEBLOCK", 0) < (0)) __PYX_ERR(5, 937, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLADVANCEBLOCK", 1, 4, 4, i); __PYX_ERR(5, 937, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_getFuncTable", 0) < (0)) __PYX_ERR(2, 576, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_getFuncTable", 1, 1, 1, i); __PYX_ERR(2, 576, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 937, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 937, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 937, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 937, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 576, __pyx_L3_error) } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + __pyx_v_group = __Pyx_PyObject_AsWritableString(values[0]); if (unlikely((!__pyx_v_group) && PyErr_Occurred())) __PYX_ERR(2, 576, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLADVANCEBLOCK", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 937, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_ta_getFuncTable", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 576, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLADVANCEBLOCK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib._ta_getFuncTable", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 939, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 939, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 939, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 939, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_418stream_CDLADVANCEBLOCK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_432_ta_getFuncTable(__pyx_self, __pyx_v_group); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_418stream_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; +static PyObject *__pyx_pf_5talib_7_ta_lib_432_ta_getFuncTable(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_group) { + TA_StringTable *__pyx_v_table; + PyObject *__pyx_v_functions = NULL; + unsigned int __pyx_v_i; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + 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("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(5, 959, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 961, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + __Pyx_RefNannySetupContext("_ta_getFuncTable", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 963, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FuncTableAlloc, TA_FuncTableAlloc(__pyx_v_group, (&__pyx_v_table)), 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 581, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + __Pyx_DECREF(__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(5, 965, __pyx_L1_error) + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 582, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_functions = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 967, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - - __pyx_v_outinteger = 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_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_PyBytes_FromString((*(&(__pyx_v_table->string[__pyx_v_i])))); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 584, __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(2, 584, __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_mstate_global->__pyx_n_u_TA_CDLADVANCEBLOCK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 970, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FuncTableFree, TA_FuncTableFree(__pyx_v_table), 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 585, __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_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 971, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; + __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.stream_CDLADVANCEBLOCK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib._ta_getFuncTable", __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_XDECREF(__pyx_v_functions); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -55242,37 +56142,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_418stream_CDLADVANCEBLOCK(CYTHON_UNUSE /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_421stream_CDLBELTHOLD(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_435__get_flags(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_420stream_CDLBELTHOLD, "stream_CDLBELTHOLD(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLBELTHOLD(open, high, low, close)\n\nBelt-hold (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_421stream_CDLBELTHOLD = {"stream_CDLBELTHOLD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_421stream_CDLBELTHOLD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_420stream_CDLBELTHOLD}; -static PyObject *__pyx_pw_5talib_7_ta_lib_421stream_CDLBELTHOLD(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_434__get_flags, "__get_flags(int flag, dict flags_lookup_dict)\n\nTA-LIB provides hints for multiple flags as a bitwise-ORed int.\nThis function returns the flags from flag found in the provided\nflags_lookup_dict."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_435__get_flags = {"__get_flags", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_435__get_flags, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_434__get_flags}; +static PyObject *__pyx_pw_5talib_7_ta_lib_435__get_flags(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + int __pyx_v_flag; + PyObject *__pyx_v_flags_lookup_dict = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLBELTHOLD (wrapper)", 0); + __Pyx_RefNannySetupContext("__get_flags (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -55282,70 +56180,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_flag,&__pyx_mstate_global->__pyx_n_u_flags_lookup_dict,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 973, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 588, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 973, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 973, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 973, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 588, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 973, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 588, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLBELTHOLD", 0) < (0)) __PYX_ERR(5, 973, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLBELTHOLD", 1, 4, 4, i); __PYX_ERR(5, 973, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__get_flags", 0) < (0)) __PYX_ERR(2, 588, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__get_flags", 1, 2, 2, i); __PYX_ERR(2, 588, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 973, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 588, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 973, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 973, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 973, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 588, __pyx_L3_error) } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + __pyx_v_flag = __Pyx_PyLong_As_int(values[0]); if (unlikely((__pyx_v_flag == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 588, __pyx_L3_error) + __pyx_v_flags_lookup_dict = ((PyObject*)values[1]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLBELTHOLD", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 973, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__get_flags", 1, 2, 2, __pyx_nargs); __PYX_ERR(2, 588, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLBELTHOLD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 975, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 975, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 975, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 975, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_420stream_CDLBELTHOLD(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flags_lookup_dict), (&PyDict_Type), 1, "flags_lookup_dict", 1))) __PYX_ERR(2, 588, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_434__get_flags(__pyx_self, __pyx_v_flag, __pyx_v_flags_lookup_dict); /* function exit code */ goto __pyx_L0; @@ -55364,86 +56245,151 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_420stream_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; +static PyObject *__pyx_pf_5talib_7_ta_lib_434__get_flags(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_flag, PyObject *__pyx_v_flags_lookup_dict) { + PyObject *__pyx_v_bit = NULL; + PyObject *__pyx_v_description = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + Py_ssize_t __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *(*__pyx_t_9)(PyObject *); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("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(5, 995, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 997, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + __Pyx_RefNannySetupContext("__get_flags", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 999, __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 = (__pyx_v_flag < 1); + if (__pyx_t_1) { - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1001, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 598, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1003, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + if (unlikely(__pyx_v_flags_lookup_dict == Py_None)) { + PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items"); + __PYX_ERR(2, 599, __pyx_L1_error) + } + __pyx_t_3 = __Pyx_PyDict_Items(__pyx_v_flags_lookup_dict); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 599, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PySequence_List(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 599, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely((PyList_Sort(__pyx_t_4) < 0))) __PYX_ERR(2, 599, __pyx_L1_error) + __pyx_t_3 = __pyx_t_4; __Pyx_INCREF(__pyx_t_3); + __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + for (;;) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 599, __pyx_L1_error) + #endif + if (__pyx_t_5 >= __pyx_temp) break; + } + __pyx_t_4 = __Pyx_PyList_GetItemRefFast(__pyx_t_3, __pyx_t_5, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_5; + if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 599, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if ((likely(PyTuple_CheckExact(__pyx_t_4))) || (PyList_CheckExact(__pyx_t_4))) { + PyObject* sequence = __pyx_t_4; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(2, 599, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); + __Pyx_INCREF(__pyx_t_6); + __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1); + __Pyx_INCREF(__pyx_t_7); + } else { + __pyx_t_6 = __Pyx_PyList_GetItemRefFast(sequence, 0, __Pyx_ReferenceSharing_SharedReference); + if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 599, __pyx_L1_error) + __Pyx_XGOTREF(__pyx_t_6); + __pyx_t_7 = __Pyx_PyList_GetItemRefFast(sequence, 1, __Pyx_ReferenceSharing_SharedReference); + if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 599, __pyx_L1_error) + __Pyx_XGOTREF(__pyx_t_7); + } + #else + __pyx_t_6 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 599, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 599, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + #endif + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } else { + Py_ssize_t index = -1; + __pyx_t_8 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 599, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_9 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_8); + index = 0; __pyx_t_6 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_6)) goto __pyx_L6_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + index = 1; __pyx_t_7 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_7)) goto __pyx_L6_unpacking_failed; + __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 2) < (0)) __PYX_ERR(2, 599, __pyx_L1_error) + __pyx_t_9 = NULL; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + goto __pyx_L7_unpacking_done; + __pyx_L6_unpacking_failed:; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_9 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(2, 599, __pyx_L1_error) + __pyx_L7_unpacking_done:; + } + __Pyx_XDECREF_SET(__pyx_v_bit, __pyx_t_6); + __pyx_t_6 = 0; + __Pyx_XDECREF_SET(__pyx_v_description, __pyx_t_7); + __pyx_t_7 = 0; - __pyx_v_outinteger = 0; + __pyx_t_4 = __Pyx_PyLong_From_int(__pyx_v_flag); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 600, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = PyNumber_And(__pyx_v_bit, __pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 600, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(2, 600, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (__pyx_t_1) { - __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)); + if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_v_description))) __PYX_ERR(2, 598, __pyx_L1_error) - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBELTHOLD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1006, __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_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1007, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 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_AddTraceback("talib._ta_lib.stream_CDLBELTHOLD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("talib._ta_lib.__get_flags", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF(__pyx_v_bit); + __Pyx_XDECREF(__pyx_v_description); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -55451,37 +56397,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_420stream_CDLBELTHOLD(CYTHON_UNUSED Py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_423stream_CDLBREAKAWAY(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_437_ta_getFuncInfo(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_422stream_CDLBREAKAWAY, "stream_CDLBREAKAWAY(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLBREAKAWAY(open, high, low, close)\n\nBreakaway (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_423stream_CDLBREAKAWAY = {"stream_CDLBREAKAWAY", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_423stream_CDLBREAKAWAY, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_422stream_CDLBREAKAWAY}; -static PyObject *__pyx_pw_5talib_7_ta_lib_423stream_CDLBREAKAWAY(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_436_ta_getFuncInfo, "_ta_getFuncInfo(char *function_name)\n\nReturns the info dict for the function. It has the following keys: name,\ngroup, help, flags, num_inputs, num_opt_inputs and num_outputs."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_437_ta_getFuncInfo = {"_ta_getFuncInfo", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_437_ta_getFuncInfo, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_436_ta_getFuncInfo}; +static PyObject *__pyx_pw_5talib_7_ta_lib_437_ta_getFuncInfo(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + char *__pyx_v_function_name; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLBREAKAWAY (wrapper)", 0); + __Pyx_RefNannySetupContext("_ta_getFuncInfo (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -55491,168 +56434,262 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_function_name,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1009, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 641, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1009, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1009, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1009, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1009, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 641, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLBREAKAWAY", 0) < (0)) __PYX_ERR(5, 1009, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLBREAKAWAY", 1, 4, 4, i); __PYX_ERR(5, 1009, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_getFuncInfo", 0) < (0)) __PYX_ERR(2, 641, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_getFuncInfo", 1, 1, 1, i); __PYX_ERR(2, 641, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1009, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1009, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1009, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1009, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 641, __pyx_L3_error) } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + __pyx_v_function_name = __Pyx_PyObject_AsWritableString(values[0]); if (unlikely((!__pyx_v_function_name) && PyErr_Occurred())) __PYX_ERR(2, 641, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLBREAKAWAY", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1009, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_ta_getFuncInfo", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 641, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLBREAKAWAY", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib._ta_getFuncInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1011, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1011, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1011, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1011, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_422stream_CDLBREAKAWAY(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_436_ta_getFuncInfo(__pyx_self, __pyx_v_function_name); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_422stream_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; +static PyObject *__pyx_pf_5talib_7_ta_lib_436_ta_getFuncInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name) { + TA_FuncInfo const *__pyx_v_info; TA_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; + TA_FuncHandle const *__pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + size_t __pyx_t_7; + PyObject *__pyx_t_8 = NULL; 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(5, 1031, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1033, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("_ta_getFuncInfo", 0); - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + __pyx_t_1 = __pyx_f_5talib_7_ta_lib___ta_getFuncHandle(__pyx_v_function_name); if (unlikely(__pyx_t_1 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(2, 647, __pyx_L1_error) + __pyx_v_retCode = TA_GetFuncInfo(__pyx_t_1, (&__pyx_v_info)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1035, __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__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_GetFuncInfo, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 648, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1037, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_2 = __Pyx_PyDict_NewPresized(7); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 651, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_bytes2str); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 651, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = __Pyx_PyBytes_FromString(__pyx_v_info->name); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 651, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5); + assert(__pyx_t_4); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_5, __pyx__function); + __pyx_t_7 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_6}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 651, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_name, __pyx_t_3) < (0)) __PYX_ERR(2, 651, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + __pyx_t_5 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_bytes2str); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 652, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_4 = __Pyx_PyBytes_FromString(__pyx_v_info->group); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 652, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); + assert(__pyx_t_5); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); + __pyx_t_7 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 652, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_group, __pyx_t_3) < (0)) __PYX_ERR(2, 651, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1039, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_t_6 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_bytes2str); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 653, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PyBytes_FromString(__pyx_v_info->hint); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 653, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_7 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_6); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_7 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 653, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_display_name, __pyx_t_3) < (0)) __PYX_ERR(2, 651, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_v_outinteger = 0; + __pyx_t_4 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_get_flags); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 654, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = __Pyx_PyLong_From_TA_FuncFlags(__pyx_v_info->flags); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 654, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_TA_FUNC_FLAGS); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 654, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_7 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5); + assert(__pyx_t_4); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_5, __pyx__function); + __pyx_t_7 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_6, __pyx_t_8}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 654, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_function_flags, __pyx_t_3) < (0)) __PYX_ERR(2, 651, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 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_5 = NULL; + __pyx_t_8 = __Pyx_PyLong_From_unsigned_int(__pyx_v_info->nbInput); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 655, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_8}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(&PyLong_Type), __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 655, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_num_inputs, __pyx_t_3) < (0)) __PYX_ERR(2, 651, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBREAKAWAY, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1042, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_8 = NULL; + __pyx_t_5 = __Pyx_PyLong_From_unsigned_int(__pyx_v_info->nbOptInput); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 656, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(&PyLong_Type), __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 656, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_num_opt_inputs, __pyx_t_3) < (0)) __PYX_ERR(2, 651, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1043, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; + __pyx_t_5 = NULL; + __pyx_t_8 = __Pyx_PyLong_From_unsigned_int(__pyx_v_info->nbOutput); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 657, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_8}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(&PyLong_Type), __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 657, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_num_outputs, __pyx_t_3) < (0)) __PYX_ERR(2, 651, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 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_AddTraceback("talib._ta_lib.stream_CDLBREAKAWAY", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -55660,37 +56697,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_422stream_CDLBREAKAWAY(CYTHON_UNUSED P /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_425stream_CDLCLOSINGMARUBOZU(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_439_ta_getInputParameterInfo(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_424stream_CDLCLOSINGMARUBOZU, "stream_CDLCLOSINGMARUBOZU(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLCLOSINGMARUBOZU(open, high, low, close)\n\nClosing Marubozu (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_425stream_CDLCLOSINGMARUBOZU = {"stream_CDLCLOSINGMARUBOZU", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_425stream_CDLCLOSINGMARUBOZU, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_424stream_CDLCLOSINGMARUBOZU}; -static PyObject *__pyx_pw_5talib_7_ta_lib_425stream_CDLCLOSINGMARUBOZU(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_438_ta_getInputParameterInfo, "_ta_getInputParameterInfo(char *function_name, int idx)\n\nReturns the function's input info dict for the given index. It has two\nkeys: name and flags."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_439_ta_getInputParameterInfo = {"_ta_getInputParameterInfo", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_439_ta_getInputParameterInfo, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_438_ta_getInputParameterInfo}; +static PyObject *__pyx_pw_5talib_7_ta_lib_439_ta_getInputParameterInfo(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + char *__pyx_v_function_name; + int __pyx_v_idx; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLCLOSINGMARUBOZU (wrapper)", 0); + __Pyx_RefNannySetupContext("_ta_getInputParameterInfo (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -55700,168 +56735,212 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_function_name,&__pyx_mstate_global->__pyx_n_u_idx,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1045, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 660, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1045, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1045, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1045, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 660, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1045, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 660, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLCLOSINGMARUBOZU", 0) < (0)) __PYX_ERR(5, 1045, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLCLOSINGMARUBOZU", 1, 4, 4, i); __PYX_ERR(5, 1045, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_getInputParameterInfo", 0) < (0)) __PYX_ERR(2, 660, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_getInputParameterInfo", 1, 2, 2, i); __PYX_ERR(2, 660, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1045, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 660, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1045, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1045, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1045, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 660, __pyx_L3_error) } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + __pyx_v_function_name = __Pyx_PyObject_AsWritableString(values[0]); if (unlikely((!__pyx_v_function_name) && PyErr_Occurred())) __PYX_ERR(2, 660, __pyx_L3_error) + __pyx_v_idx = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_idx == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 660, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLCLOSINGMARUBOZU", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1045, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_ta_getInputParameterInfo", 1, 2, 2, __pyx_nargs); __PYX_ERR(2, 660, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLCLOSINGMARUBOZU", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib._ta_getInputParameterInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1047, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1047, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1047, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1047, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_424stream_CDLCLOSINGMARUBOZU(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_438_ta_getInputParameterInfo(__pyx_self, __pyx_v_function_name, __pyx_v_idx); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_424stream_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; +static PyObject *__pyx_pf_5talib_7_ta_lib_438_ta_getInputParameterInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name, int __pyx_v_idx) { + TA_InputParameterInfo const *__pyx_v_info; TA_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_v_name = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + TA_FuncHandle const *__pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + size_t __pyx_t_6; + Py_ssize_t __pyx_t_7; + int __pyx_t_8; + 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("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_RefNannySetupContext("_ta_getInputParameterInfo", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1067, __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 = __pyx_f_5talib_7_ta_lib___ta_getFuncHandle(__pyx_v_function_name); if (unlikely(__pyx_t_1 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(2, 666, __pyx_L1_error) + __pyx_v_retCode = TA_GetInputParameterInfo(__pyx_t_1, __pyx_v_idx, (&__pyx_v_info)); - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_GetInputParameterInfo, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 667, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1069, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_bytes2str); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 669, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PyBytes_FromString(__pyx_v_info->paramName); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 669, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_6 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_5}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 669, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __pyx_v_name = __pyx_t_2; + __pyx_t_2 = 0; - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + __pyx_t_7 = __Pyx_PyUnicode_GET_LENGTH(__pyx_mstate_global->__pyx_n_u_in); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(2, 670, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetSlice(__pyx_v_name, __pyx_t_7, 0, NULL, NULL, NULL, 1, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 670, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_4 = __pyx_t_5; + __Pyx_INCREF(__pyx_t_4); + __pyx_t_6 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_lower, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 670, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_2); + __pyx_t_2 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 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_8 = (__Pyx_PySequence_ContainsTF(__pyx_mstate_global->__pyx_n_u_real, __pyx_v_name, Py_EQ)); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(2, 671, __pyx_L1_error) + if (__pyx_t_8) { - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_name, __pyx_mstate_global->__pyx_n_u_replace); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 672, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[0], NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 672, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_5); + __pyx_t_5 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1073, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + goto __pyx_L3; + } - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + __pyx_t_8 = (__Pyx_PySequence_ContainsTF(__pyx_mstate_global->__pyx_n_u_price, __pyx_v_name, Py_EQ)); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(2, 673, __pyx_L1_error) + if (__pyx_t_8) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1075, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __Pyx_INCREF(__pyx_mstate_global->__pyx_n_u_prices); + __Pyx_DECREF_SET(__pyx_v_name, __pyx_mstate_global->__pyx_n_u_prices); - __pyx_v_outinteger = 0; + } + __pyx_L3:; - __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_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCLOSINGMARUBOZU, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1078, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_5 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 677, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_name, __pyx_v_name) < (0)) __PYX_ERR(2, 677, __pyx_L1_error) - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1079, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; + __pyx_t_4 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_get_flags); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 678, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_9 = __Pyx_PyLong_From_TA_InputFlags(__pyx_v_info->flags); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 678, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_TA_INPUT_FLAGS); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 678, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __pyx_t_6 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); + assert(__pyx_t_4); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_3, __pyx__function); + __pyx_t_6 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_9, __pyx_t_10}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_6, (3-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 678, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_price_series, __pyx_t_2) < (0)) __PYX_ERR(2, 677, __pyx_L1_error) + __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_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLCLOSINGMARUBOZU", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("talib._ta_lib._ta_getInputParameterInfo", __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_XDECREF(__pyx_v_name); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -55869,37 +56948,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_424stream_CDLCLOSINGMARUBOZU(CYTHON_UN /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_427stream_CDLCONCEALBABYSWALL(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_441_ta_getOptInputParameterInfo(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_426stream_CDLCONCEALBABYSWALL, "stream_CDLCONCEALBABYSWALL(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLCONCEALBABYSWALL(open, high, low, close)\n\nConcealing Baby Swallow (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_427stream_CDLCONCEALBABYSWALL = {"stream_CDLCONCEALBABYSWALL", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_427stream_CDLCONCEALBABYSWALL, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_426stream_CDLCONCEALBABYSWALL}; -static PyObject *__pyx_pw_5talib_7_ta_lib_427stream_CDLCONCEALBABYSWALL(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_440_ta_getOptInputParameterInfo, "_ta_getOptInputParameterInfo(char *function_name, int idx)\n\nReturns the function's opt_input info dict for the given index. It has the\nfollowing keys: name, display_name, type, help, default_value and value."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_441_ta_getOptInputParameterInfo = {"_ta_getOptInputParameterInfo", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_441_ta_getOptInputParameterInfo, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_440_ta_getOptInputParameterInfo}; +static PyObject *__pyx_pw_5talib_7_ta_lib_441_ta_getOptInputParameterInfo(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + char *__pyx_v_function_name; + int __pyx_v_idx; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLCONCEALBABYSWALL (wrapper)", 0); + __Pyx_RefNannySetupContext("_ta_getOptInputParameterInfo (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -55909,168 +56986,239 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_function_name,&__pyx_mstate_global->__pyx_n_u_idx,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1081, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 681, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1081, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1081, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1081, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 681, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1081, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 681, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLCONCEALBABYSWALL", 0) < (0)) __PYX_ERR(5, 1081, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLCONCEALBABYSWALL", 1, 4, 4, i); __PYX_ERR(5, 1081, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_getOptInputParameterInfo", 0) < (0)) __PYX_ERR(2, 681, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_getOptInputParameterInfo", 1, 2, 2, i); __PYX_ERR(2, 681, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1081, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 681, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1081, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1081, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1081, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 681, __pyx_L3_error) } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + __pyx_v_function_name = __Pyx_PyObject_AsWritableString(values[0]); if (unlikely((!__pyx_v_function_name) && PyErr_Occurred())) __PYX_ERR(2, 681, __pyx_L3_error) + __pyx_v_idx = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_idx == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 681, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLCONCEALBABYSWALL", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1081, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_ta_getOptInputParameterInfo", 1, 2, 2, __pyx_nargs); __PYX_ERR(2, 681, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLCONCEALBABYSWALL", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib._ta_getOptInputParameterInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1083, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1083, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1083, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1083, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_426stream_CDLCONCEALBABYSWALL(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_440_ta_getOptInputParameterInfo(__pyx_self, __pyx_v_function_name, __pyx_v_idx); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_426stream_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; +static PyObject *__pyx_pf_5talib_7_ta_lib_440_ta_getOptInputParameterInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name, int __pyx_v_idx) { + TA_OptInputParameterInfo const *__pyx_v_info; TA_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_v_name = NULL; + PyObject *__pyx_v_default_value = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + TA_FuncHandle const *__pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + size_t __pyx_t_6; + Py_ssize_t __pyx_t_7; + int __pyx_t_8; + PyObject *__pyx_t_9 = NULL; 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(5, 1103, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("_ta_getOptInputParameterInfo", 0); - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + __pyx_t_1 = __pyx_f_5talib_7_ta_lib___ta_getFuncHandle(__pyx_v_function_name); if (unlikely(__pyx_t_1 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(2, 687, __pyx_L1_error) + __pyx_v_retCode = TA_GetOptInputParameterInfo(__pyx_t_1, __pyx_v_idx, (&__pyx_v_info)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1105, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_GetOptInputParameterInfo, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 688, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_bytes2str); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 690, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PyBytes_FromString(__pyx_v_info->paramName); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 690, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_6 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_5}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 690, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __pyx_v_name = __pyx_t_2; + __pyx_t_2 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1107, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_7 = __Pyx_PyUnicode_GET_LENGTH(__pyx_mstate_global->__pyx_n_u_optIn); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(2, 691, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetSlice(__pyx_v_name, __pyx_t_7, 0, NULL, NULL, NULL, 1, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 691, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_4 = __pyx_t_5; + __Pyx_INCREF(__pyx_t_4); + __pyx_t_6 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_lower, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 691, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_2); + __pyx_t_2 = 0; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + __pyx_t_8 = (__pyx_v_info->type > 1); + if (__pyx_t_8) { + __pyx_t_5 = PyLong_FromDouble(__pyx_v_info->defaultValue); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 692, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __pyx_t_5; + __pyx_t_5 = 0; + } else { + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_info->defaultValue); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 692, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __pyx_t_5; + __pyx_t_5 = 0; + } + __pyx_v_default_value = __pyx_t_2; + __pyx_t_2 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1109, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_r); - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + __pyx_t_2 = __Pyx_PyDict_NewPresized(6); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 695, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_name, __pyx_v_name) < (0)) __PYX_ERR(2, 695, __pyx_L1_error) - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1111, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_t_4 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_bytes2str); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 696, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_9 = __Pyx_PyBytes_FromString(__pyx_v_info->displayName); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 696, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_6 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); + assert(__pyx_t_4); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_3, __pyx__function); + __pyx_t_6 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 696, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_display_name, __pyx_t_5) < (0)) __PYX_ERR(2, 695, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_v_outinteger = 0; + __pyx_t_5 = __Pyx_PyLong_From_TA_OptInputParameterType(__pyx_v_info->type); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 697, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_type_2, __pyx_t_5) < (0)) __PYX_ERR(2, 695, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 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_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_bytes2str); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 698, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_4 = __Pyx_PyBytes_FromString(__pyx_v_info->hint); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 698, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_9))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_9); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_9); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_9, __pyx__function); + __pyx_t_6 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4}; + __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_9, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 698, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_help, __pyx_t_5) < (0)) __PYX_ERR(2, 695, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCONCEALBABYSWALL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1114, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_default_value, __pyx_v_default_value) < (0)) __PYX_ERR(2, 695, __pyx_L1_error) - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1115, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_value, Py_None) < (0)) __PYX_ERR(2, 695, __pyx_L1_error) + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLCONCEALBABYSWALL", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("talib._ta_lib._ta_getOptInputParameterInfo", __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_XDECREF(__pyx_v_name); + __Pyx_XDECREF(__pyx_v_default_value); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -56078,37 +57226,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_426stream_CDLCONCEALBABYSWALL(CYTHON_U /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_429stream_CDLCOUNTERATTACK(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_443_ta_getOutputParameterInfo(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_428stream_CDLCOUNTERATTACK, "stream_CDLCOUNTERATTACK(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLCOUNTERATTACK(open, high, low, close)\n\nCounterattack (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_429stream_CDLCOUNTERATTACK = {"stream_CDLCOUNTERATTACK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_429stream_CDLCOUNTERATTACK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_428stream_CDLCOUNTERATTACK}; -static PyObject *__pyx_pw_5talib_7_ta_lib_429stream_CDLCOUNTERATTACK(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_442_ta_getOutputParameterInfo, "_ta_getOutputParameterInfo(char *function_name, int idx)\n\nReturns the function's output info dict for the given index. It has two\nkeys: name and flags."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_443_ta_getOutputParameterInfo = {"_ta_getOutputParameterInfo", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_443_ta_getOutputParameterInfo, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_442_ta_getOutputParameterInfo}; +static PyObject *__pyx_pw_5talib_7_ta_lib_443_ta_getOutputParameterInfo(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + char *__pyx_v_function_name; + int __pyx_v_idx; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLCOUNTERATTACK (wrapper)", 0); + __Pyx_RefNannySetupContext("_ta_getOutputParameterInfo (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -56118,394 +57264,228 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_function_name,&__pyx_mstate_global->__pyx_n_u_idx,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1117, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 703, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1117, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1117, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1117, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 703, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1117, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 703, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLCOUNTERATTACK", 0) < (0)) __PYX_ERR(5, 1117, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLCOUNTERATTACK", 1, 4, 4, i); __PYX_ERR(5, 1117, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_getOutputParameterInfo", 0) < (0)) __PYX_ERR(2, 703, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_getOutputParameterInfo", 1, 2, 2, i); __PYX_ERR(2, 703, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1117, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 703, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1117, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1117, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1117, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 703, __pyx_L3_error) } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + __pyx_v_function_name = __Pyx_PyObject_AsWritableString(values[0]); if (unlikely((!__pyx_v_function_name) && PyErr_Occurred())) __PYX_ERR(2, 703, __pyx_L3_error) + __pyx_v_idx = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_idx == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 703, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLCOUNTERATTACK", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1117, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_ta_getOutputParameterInfo", 1, 2, 2, __pyx_nargs); __PYX_ERR(2, 703, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLCOUNTERATTACK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib._ta_getOutputParameterInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1119, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1119, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1119, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1119, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_428stream_CDLCOUNTERATTACK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_442_ta_getOutputParameterInfo(__pyx_self, __pyx_v_function_name, __pyx_v_idx); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_428stream_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; +static PyObject *__pyx_pf_5talib_7_ta_lib_442_ta_getOutputParameterInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name, int __pyx_v_idx) { + TA_OutputParameterInfo const *__pyx_v_info; TA_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_v_name = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + TA_FuncHandle const *__pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + size_t __pyx_t_6; + Py_ssize_t __pyx_t_7; + int __pyx_t_8; + int __pyx_t_9; + int __pyx_t_10; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("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(5, 1139, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1141, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1143, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1145, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + __Pyx_RefNannySetupContext("_ta_getOutputParameterInfo", 0); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1147, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_t_1 = __pyx_f_5talib_7_ta_lib___ta_getFuncHandle(__pyx_v_function_name); if (unlikely(__pyx_t_1 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(2, 709, __pyx_L1_error) + __pyx_v_retCode = TA_GetOutputParameterInfo(__pyx_t_1, __pyx_v_idx, (&__pyx_v_info)); - __pyx_v_outinteger = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_GetOutputParameterInfo, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 710, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 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_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_bytes2str); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 712, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PyBytes_FromString(__pyx_v_info->paramName); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 712, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_6 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_5}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 712, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __pyx_v_name = __pyx_t_2; + __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCOUNTERATTACK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1150, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_7 = __Pyx_PyUnicode_GET_LENGTH(__pyx_mstate_global->__pyx_n_u_out); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(2, 713, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetSlice(__pyx_v_name, __pyx_t_7, 0, NULL, NULL, NULL, 1, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 713, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_4 = __pyx_t_5; + __Pyx_INCREF(__pyx_t_4); + __pyx_t_6 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_lower, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 713, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_2); + __pyx_t_2 = 0; - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1151, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __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_431stream_CDLDARKCLOUDCOVER(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_430stream_CDLDARKCLOUDCOVER, "stream_CDLDARKCLOUDCOVER(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.5)\n\nCDLDARKCLOUDCOVER(open, high, low, close[, penetration=?])\n\nDark Cloud Cover (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nParameters:\n penetration: 0.5\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_431stream_CDLDARKCLOUDCOVER = {"stream_CDLDARKCLOUDCOVER", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_431stream_CDLDARKCLOUDCOVER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_430stream_CDLDARKCLOUDCOVER}; -static PyObject *__pyx_pw_5talib_7_ta_lib_431stream_CDLDARKCLOUDCOVER(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - double __pyx_v_penetration; - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLDARKCLOUDCOVER (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1153, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 1153, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1153, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1153, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1153, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1153, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLDARKCLOUDCOVER", 0) < (0)) __PYX_ERR(5, 1153, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLDARKCLOUDCOVER", 0, 4, 5, i); __PYX_ERR(5, 1153, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 1153, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1153, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1153, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1153, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1153, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 1155, __pyx_L3_error) - } else { - __pyx_v_penetration = ((double)((double)0.5)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLDARKCLOUDCOVER", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 1153, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + __pyx_t_9 = (__Pyx_PySequence_ContainsTF(__pyx_mstate_global->__pyx_n_u_real, __pyx_v_name, Py_EQ)); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(2, 715, __pyx_L1_error) + if (__pyx_t_9) { + } else { + __pyx_t_8 = __pyx_t_9; + goto __pyx_L4_bool_binop_done; } - __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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1155, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1155, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1155, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1155, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_430stream_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; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + __Pyx_INCREF(__pyx_v_name); + __pyx_t_2 = __pyx_v_name; + __pyx_t_10 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_real, Py_NE)); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(2, 715, __pyx_L1_error) + if (__pyx_t_10) { + } else { + __pyx_t_9 = __pyx_t_10; + goto __pyx_L6_bool_binop_done; } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + __pyx_t_10 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_real0, Py_NE)); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(2, 715, __pyx_L1_error) + if (__pyx_t_10) { + } else { + __pyx_t_9 = __pyx_t_10; + goto __pyx_L6_bool_binop_done; } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_430stream_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(5, 1177, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1179, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1181, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1183, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + __pyx_t_10 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_real1, Py_NE)); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(2, 715, __pyx_L1_error) + __pyx_t_9 = __pyx_t_10; + __pyx_L6_bool_binop_done:; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_10 = __pyx_t_9; + __pyx_t_8 = __pyx_t_10; + __pyx_L4_bool_binop_done:; + if (__pyx_t_8) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1185, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_t_7 = __Pyx_PyUnicode_GET_LENGTH(__pyx_mstate_global->__pyx_n_u_real); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(2, 716, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_v_name, __pyx_t_7, 0, NULL, NULL, NULL, 1, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 716, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_2); + __pyx_t_2 = 0; - __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_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDARKCLOUDCOVER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1188, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 719, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_name, __pyx_v_name) < (0)) __PYX_ERR(2, 719, __pyx_L1_error) - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1189, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; + __pyx_t_4 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_get_flags); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 720, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_11 = __Pyx_PyLong_From_TA_OutputFlags(__pyx_v_info->flags); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 720, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_TA_OUTPUT_FLAGS); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 720, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __pyx_t_6 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); + assert(__pyx_t_4); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_3, __pyx__function); + __pyx_t_6 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_11, __pyx_t_12}; + __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_6, (3-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 720, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_flags, __pyx_t_5) < (0)) __PYX_ERR(2, 719, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 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_AddTraceback("talib._ta_lib.stream_CDLDARKCLOUDCOVER", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_11); + __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((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF(__pyx_v_name); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -56513,37 +57493,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_430stream_CDLDARKCLOUDCOVER(CYTHON_UNU /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_433stream_CDLDOJI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_445_get_defaults_and_docs(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_432stream_CDLDOJI, "stream_CDLDOJI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLDOJI(open, high, low, close)\n\nDoji (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_433stream_CDLDOJI = {"stream_CDLDOJI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_433stream_CDLDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_432stream_CDLDOJI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_433stream_CDLDOJI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_444_get_defaults_and_docs, "_get_defaults_and_docs(func_info)\n\nReturns a tuple with two outputs: defaults, a dict of parameter defaults,\nand documentation, a formatted docstring for the function.\n.. Note: func_info should come from Function.info, *not* _ta_getFuncInfo."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_445_get_defaults_and_docs = {"_get_defaults_and_docs", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_445_get_defaults_and_docs, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_444_get_defaults_and_docs}; +static PyObject *__pyx_pw_5talib_7_ta_lib_445_get_defaults_and_docs(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + PyObject *__pyx_v_func_info = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLDOJI (wrapper)", 0); + __Pyx_RefNannySetupContext("_get_defaults_and_docs (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -56553,415 +57530,752 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_func_info,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1191, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 723, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1191, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1191, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1191, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1191, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 723, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLDOJI", 0) < (0)) __PYX_ERR(5, 1191, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLDOJI", 1, 4, 4, i); __PYX_ERR(5, 1191, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_get_defaults_and_docs", 0) < (0)) __PYX_ERR(2, 723, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_get_defaults_and_docs", 1, 1, 1, i); __PYX_ERR(2, 723, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1191, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1191, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1191, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1191, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 723, __pyx_L3_error) } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + __pyx_v_func_info = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLDOJI", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1191, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("_get_defaults_and_docs", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 723, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib._get_defaults_and_docs", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1193, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1193, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1193, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1193, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_432stream_CDLDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_444_get_defaults_and_docs(__pyx_self, __pyx_v_func_info); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_432stream_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; +static PyObject *__pyx_pf_5talib_7_ta_lib_444_get_defaults_and_docs(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_func_info) { + PyObject *__pyx_v_defaults = NULL; + PyObject *__pyx_v_func_line = NULL; + PyObject *__pyx_v_func_args = NULL; + PyObject *__pyx_v_docs = NULL; + PyObject *__pyx_v_input_names = NULL; + PyObject *__pyx_v_input_name = NULL; + PyObject *__pyx_v_value = NULL; + PyObject *__pyx_v_params = NULL; + PyObject *__pyx_v_param = NULL; + PyObject *__pyx_v_outputs = NULL; + PyObject *__pyx_v_candlestick = NULL; + PyObject *__pyx_v_output = NULL; + PyObject *__pyx_v_documentation = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + Py_ssize_t __pyx_t_4; + PyObject *(*__pyx_t_5)(PyObject *); + int __pyx_t_6; + int __pyx_t_7; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9[4]; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11[5]; + size_t __pyx_t_12; + PyObject *__pyx_t_13 = NULL; 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_RefNannySetupContext("_get_defaults_and_docs", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1213, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_defaults = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1215, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_func_info, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 730, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 730, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_1) != (0)) __PYX_ERR(2, 730, __pyx_L1_error); + __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u__6); + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_kp_u__6); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_kp_u__6) != (0)) __PYX_ERR(2, 730, __pyx_L1_error); __pyx_t_1 = 0; + __pyx_v_func_line = ((PyObject*)__pyx_t_2); + __pyx_t_2 = 0; - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 731, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_input_arrays_2); + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_kp_u_input_arrays_2); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_mstate_global->__pyx_kp_u_input_arrays_2) != (0)) __PYX_ERR(2, 731, __pyx_L1_error); + __pyx_v_func_args = ((PyObject*)__pyx_t_2); + __pyx_t_2 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1217, __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 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 732, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_docs = ((PyObject*)__pyx_t_2); + __pyx_t_2 = 0; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + __pyx_t_2 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_display_name_s_group_s, __pyx_v_func_info); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 733, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_t_2); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 733, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1219, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_func_info, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 735, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_input_names = __pyx_t_2; + __pyx_t_2 = 0; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_mstate_global->__pyx_kp_u_Inputs); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 736, __pyx_L1_error) - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1221, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + if (likely(PyList_CheckExact(__pyx_v_input_names)) || PyTuple_CheckExact(__pyx_v_input_names)) { + __pyx_t_2 = __pyx_v_input_names; __Pyx_INCREF(__pyx_t_2); + __pyx_t_4 = 0; + __pyx_t_5 = NULL; + } else { + __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_input_names); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 737, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 737, __pyx_L1_error) + } + for (;;) { + if (likely(!__pyx_t_5)) { + if (likely(PyList_CheckExact(__pyx_t_2))) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 737, __pyx_L1_error) + #endif + if (__pyx_t_4 >= __pyx_temp) break; + } + __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_2, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_4; + } else { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 737, __pyx_L1_error) + #endif + if (__pyx_t_4 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4)); + #else + __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_4); + #endif + ++__pyx_t_4; + } + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 737, __pyx_L1_error) + } else { + __pyx_t_1 = __pyx_t_5(__pyx_t_2); + if (unlikely(!__pyx_t_1)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 737, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_1); + __Pyx_XDECREF_SET(__pyx_v_input_name, __pyx_t_1); + __pyx_t_1 = 0; - __pyx_v_outinteger = 0; + __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_input_names, __pyx_v_input_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 738, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_1); + __pyx_t_1 = 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_6 = PyList_Check(__pyx_v_value); + __pyx_t_7 = (!__pyx_t_6); + if (__pyx_t_7) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1224, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_any_ndarray); + __Pyx_DECREF_SET(__pyx_v_value, __pyx_mstate_global->__pyx_kp_u_any_ndarray); - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1225, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; + } + __pyx_t_1 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_input_name), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 741, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_8 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_value), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 741, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_9[0] = __pyx_mstate_global->__pyx_kp_u__7; + __pyx_t_9[1] = __pyx_t_1; + __pyx_t_9[2] = __pyx_mstate_global->__pyx_kp_u_; + __pyx_t_9[3] = __pyx_t_8; + __pyx_t_10 = __Pyx_PyUnicode_Join(__pyx_t_9, 4, 4 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8)); + if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 741, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_t_10); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 741, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - /* 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; -} + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_func_info, __pyx_mstate_global->__pyx_n_u_parameters); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 743, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_params = __pyx_t_2; + __pyx_t_2 = 0; -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_435stream_CDLDOJISTAR(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_434stream_CDLDOJISTAR, "stream_CDLDOJISTAR(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLDOJISTAR(open, high, low, close)\n\nDoji Star (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_435stream_CDLDOJISTAR = {"stream_CDLDOJISTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_435stream_CDLDOJISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_434stream_CDLDOJISTAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_435stream_CDLDOJISTAR(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLDOJISTAR (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1227, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1227, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1227, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1227, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1227, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLDOJISTAR", 0) < (0)) __PYX_ERR(5, 1227, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLDOJISTAR", 1, 4, 4, i); __PYX_ERR(5, 1227, __pyx_L3_error) } + __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_params); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 744, __pyx_L1_error) + if (__pyx_t_7) { + + __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_mstate_global->__pyx_kp_u_Parameters); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 745, __pyx_L1_error) + + } + + if (likely(PyList_CheckExact(__pyx_v_params)) || PyTuple_CheckExact(__pyx_v_params)) { + __pyx_t_2 = __pyx_v_params; __Pyx_INCREF(__pyx_t_2); + __pyx_t_4 = 0; + __pyx_t_5 = NULL; + } else { + __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_params); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 746, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 746, __pyx_L1_error) + } + for (;;) { + if (likely(!__pyx_t_5)) { + if (likely(PyList_CheckExact(__pyx_t_2))) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 746, __pyx_L1_error) + #endif + if (__pyx_t_4 >= __pyx_temp) break; + } + __pyx_t_10 = __Pyx_PyList_GetItemRefFast(__pyx_t_2, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_4; + } else { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 746, __pyx_L1_error) + #endif + if (__pyx_t_4 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_10 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4)); + #else + __pyx_t_10 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_4); + #endif + ++__pyx_t_4; } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; + if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 746, __pyx_L1_error) } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1227, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1227, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1227, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1227, __pyx_L3_error) + __pyx_t_10 = __pyx_t_5(__pyx_t_2); + if (unlikely(!__pyx_t_10)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 746, __pyx_L1_error) + PyErr_Clear(); + } + break; + } } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + __Pyx_GOTREF(__pyx_t_10); + __Pyx_XDECREF_SET(__pyx_v_param, __pyx_t_10); + __pyx_t_10 = 0; + + __pyx_t_10 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_param), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 747, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_params, __pyx_v_param); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 747, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_1 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_8), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 747, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_9[0] = __pyx_mstate_global->__pyx_kp_u__7; + __pyx_t_9[1] = __pyx_t_10; + __pyx_t_9[2] = __pyx_mstate_global->__pyx_kp_u_; + __pyx_t_9[3] = __pyx_t_1; + __pyx_t_8 = __Pyx_PyUnicode_Join(__pyx_t_9, 4, 4 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_10) + 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_10) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1)); + if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 747, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_t_8); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 747, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + __pyx_t_8 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_param), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 748, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_params, __pyx_v_param); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 748, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_10 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_1), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 748, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_11[0] = __pyx_mstate_global->__pyx_kp_u__8; + __pyx_t_11[1] = __pyx_t_8; + __pyx_t_11[2] = __pyx_mstate_global->__pyx_kp_u__9; + __pyx_t_11[3] = __pyx_t_10; + __pyx_t_11[4] = __pyx_mstate_global->__pyx_kp_u__10; + __pyx_t_1 = __Pyx_PyUnicode_Join(__pyx_t_11, 5, 1 * 3 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_10), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_10)); + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 748, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_func_args, __pyx_t_1); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 748, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_params, __pyx_v_param); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 749, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (unlikely((PyDict_SetItem(__pyx_v_defaults, __pyx_v_param, __pyx_t_1) < 0))) __PYX_ERR(2, 749, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_10 = __pyx_v_param; + __Pyx_INCREF(__pyx_t_10); + __pyx_t_12 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_10, __pyx_mstate_global->__pyx_n_u_matype}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_endswith, __pyx_callargs+__pyx_t_12, (2-__pyx_t_12) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 750, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 750, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_7) { + + __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_docs, -1L, long, 1, __Pyx_PyLong_From_long, 1, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 751, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 751, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_params, __pyx_v_param); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 751, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_13 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_t_8); if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 751, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_8 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_s_3, __pyx_t_13); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 751, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_13 = PyList_New(2); if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 751, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyList_SET_ITEM(__pyx_t_13, 0, __pyx_t_1) != (0)) __PYX_ERR(2, 751, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_8); + if (__Pyx_PyList_SET_ITEM(__pyx_t_13, 1, __pyx_t_8) != (0)) __PYX_ERR(2, 751, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_8 = 0; + __pyx_t_8 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__11, __pyx_t_13); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 751, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + if (unlikely((__Pyx_SetItemInt(__pyx_v_docs, -1L, __pyx_t_8, long, 1, __Pyx_PyLong_From_long, 1, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference) < 0))) __PYX_ERR(2, 751, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + } + } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLDOJISTAR", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1227, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_func_info, __pyx_mstate_global->__pyx_n_u_output_names); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 753, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_outputs = __pyx_t_2; + __pyx_t_2 = 0; + + __pyx_t_8 = __Pyx_PyObject_Dict_GetItem(__pyx_v_func_info, __pyx_mstate_global->__pyx_n_u_function_flags); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 754, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 754, __pyx_L1_error) + if (!__pyx_t_7) { + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + } else { + __Pyx_INCREF(__pyx_t_8); + __pyx_t_2 = __pyx_t_8; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + goto __pyx_L12_bool_binop_done; } - __Pyx_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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1229, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1229, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1229, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1229, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_434stream_CDLDOJISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_t_8 = PyList_New(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 754, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_INCREF(__pyx_t_8); + __pyx_t_2 = __pyx_t_8; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_L12_bool_binop_done:; + __pyx_t_7 = (__Pyx_PySequence_ContainsTF(__pyx_mstate_global->__pyx_kp_u_Output_is_a_candlestick, __pyx_t_2, Py_EQ)); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 754, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 754, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_candlestick = __pyx_t_2; + __pyx_t_2 = 0; + + __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_mstate_global->__pyx_kp_u_Outputs); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 755, __pyx_L1_error) + + if (likely(PyList_CheckExact(__pyx_v_outputs)) || PyTuple_CheckExact(__pyx_v_outputs)) { + __pyx_t_2 = __pyx_v_outputs; __Pyx_INCREF(__pyx_t_2); + __pyx_t_4 = 0; + __pyx_t_5 = NULL; + } else { + __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_outputs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 756, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 756, __pyx_L1_error) + } + for (;;) { + if (likely(!__pyx_t_5)) { + if (likely(PyList_CheckExact(__pyx_t_2))) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 756, __pyx_L1_error) + #endif + if (__pyx_t_4 >= __pyx_temp) break; + } + __pyx_t_8 = __Pyx_PyList_GetItemRefFast(__pyx_t_2, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_4; + } else { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 756, __pyx_L1_error) + #endif + if (__pyx_t_4 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_8 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4)); + #else + __pyx_t_8 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_4); + #endif + ++__pyx_t_4; + } + if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 756, __pyx_L1_error) + } else { + __pyx_t_8 = __pyx_t_5(__pyx_t_2); + if (unlikely(!__pyx_t_8)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 756, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_8); + __Pyx_XDECREF_SET(__pyx_v_output, __pyx_t_8); + __pyx_t_8 = 0; + + __pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_v_output, __pyx_mstate_global->__pyx_n_u_integer, Py_EQ)); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(2, 757, __pyx_L1_error) + if (__pyx_t_6) { + } else { + __pyx_t_7 = __pyx_t_6; + goto __pyx_L17_bool_binop_done; + } + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_candlestick); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(2, 757, __pyx_L1_error) + __pyx_t_7 = __pyx_t_6; + __pyx_L17_bool_binop_done:; + if (__pyx_t_7) { + + __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_integer_values_are_100_0_or_100); + __Pyx_DECREF_SET(__pyx_v_output, __pyx_mstate_global->__pyx_kp_u_integer_values_are_100_0_or_100); + + } + + __pyx_t_8 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_s_4, __pyx_v_output); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 759, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_t_8); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 759, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__3, __pyx_v_func_args); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 761, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_func_line, __pyx_t_2); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 761, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_func_line, __pyx_mstate_global->__pyx_kp_u__12); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 762, __pyx_L1_error) + + __pyx_t_2 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__2, __pyx_v_func_line); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 763, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyList_Insert(__pyx_v_docs, 0, __pyx_t_2); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 763, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__13, __pyx_v_docs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 764, __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(2, 765, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_v_defaults); + __Pyx_GIVEREF(__pyx_v_defaults); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_defaults) != (0)) __PYX_ERR(2, 765, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_documentation); + __Pyx_GIVEREF(__pyx_v_documentation); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_documentation) != (0)) __PYX_ERR(2, 765, __pyx_L1_error); + __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_10); + __Pyx_XDECREF(__pyx_t_13); + __Pyx_AddTraceback("talib._ta_lib._get_defaults_and_docs", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_defaults); + __Pyx_XDECREF(__pyx_v_func_line); + __Pyx_XDECREF(__pyx_v_func_args); + __Pyx_XDECREF(__pyx_v_docs); + __Pyx_XDECREF(__pyx_v_input_names); + __Pyx_XDECREF(__pyx_v_input_name); + __Pyx_XDECREF(__pyx_v_value); + __Pyx_XDECREF(__pyx_v_params); + __Pyx_XDECREF(__pyx_v_param); + __Pyx_XDECREF(__pyx_v_outputs); + __Pyx_XDECREF(__pyx_v_candlestick); + __Pyx_XDECREF(__pyx_v_output); + __Pyx_XDECREF(__pyx_v_documentation); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_FuncHandle const *__pyx_f_5talib_7_ta_lib___ta_getFuncHandle(char *__pyx_v_function_name) { + TA_FuncHandle const *__pyx_v_handle; + TA_FuncHandle const *__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_mstate_global->__pyx_n_u_TA_GetFuncHandle, TA_GetFuncHandle(__pyx_v_function_name, (&__pyx_v_handle)), 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 781, __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_AddTraceback("talib._ta_lib.__ta_getFuncHandle", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_434stream_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; + +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; - 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; + TA_ParamHolder *__pyx_r; + __Pyx_RefNannyDeclarations + TA_FuncHandle const *__pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__ta_paramHolderAlloc", 0); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib___ta_getFuncHandle(__pyx_v_function_name); if (unlikely(__pyx_t_1 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(2, 789, __pyx_L1_error) + __pyx_v_retCode = TA_ParamHolderAlloc(__pyx_t_1, (&__pyx_v_holder)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ParamHolderAlloc, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 790, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_r = __pyx_v_holder; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.__ta_paramHolderAlloc", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static int __pyx_f_5talib_7_ta_lib___ta_paramHolderFree(TA_ParamHolder *__pyx_v_params) { + int __pyx_r; __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_RefNannySetupContext("__ta_paramHolderFree", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1249, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ParamHolderFree, TA_ParamHolderFree(__pyx_v_params), 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 798, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1251, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.__ta_paramHolderFree", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1253, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +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_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + __pyx_v_retCode = TA_SetOptInputParamInteger(__pyx_v_holder, __pyx_v_idx, __pyx_v_value); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1255, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SetOptInputParamInteger, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 802, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1257, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.__ta_setOptInputParamInteger", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} - __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)); +static int __pyx_f_5talib_7_ta_lib___ta_setOptInputParamReal(TA_ParamHolder *__pyx_v_holder, int __pyx_v_idx, double __pyx_v_value) { + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__ta_setOptInputParamReal", 0); + + __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_mstate_global->__pyx_n_u_TA_CDLDOJISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1260, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SetOptInputParamReal, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 806, __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_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1261, __pyx_L1_error) + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.__ta_setOptInputParamReal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static int __pyx_f_5talib_7_ta_lib___ta_getLookback(TA_ParamHolder *__pyx_v_holder) { + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + 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_mstate_global->__pyx_n_u_TA_GetLookback, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 811, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; + __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_AddTraceback("talib._ta_lib.stream_CDLDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; + __Pyx_AddTraceback("talib._ta_lib.__ta_getLookback", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __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_CDLDRAGONFLYDOJI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_447stream_AC(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_436stream_CDLDRAGONFLYDOJI, "stream_CDLDRAGONFLYDOJI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLDRAGONFLYDOJI(open, high, low, close)\n\nDragonfly Doji (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_437stream_CDLDRAGONFLYDOJI = {"stream_CDLDRAGONFLYDOJI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_437stream_CDLDRAGONFLYDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_436stream_CDLDRAGONFLYDOJI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_437stream_CDLDRAGONFLYDOJI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_446stream_AC, "stream_AC(ndarray high, ndarray low, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int signalperiod=-0x80000000)\n\nAC(high, low[, fastperiod=?, slowperiod=?, signalperiod=?])\n\nAccelerator/Decelerator Oscillator (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low']\nParameters:\n fastperiod: 5\n slowperiod: 34\n signalperiod: 5\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_447stream_AC = {"stream_AC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_447stream_AC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_446stream_AC}; +static PyObject *__pyx_pw_5talib_7_ta_lib_447stream_AC(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + int __pyx_v_signalperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLDRAGONFLYDOJI (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_AC (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -56971,70 +58285,96 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1263, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 9, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 9, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1263, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 9, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1263, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 9, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1263, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 9, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1263, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 9, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLDRAGONFLYDOJI", 0) < (0)) __PYX_ERR(5, 1263, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLDRAGONFLYDOJI", 1, 4, 4, i); __PYX_ERR(5, 1263, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_AC", 0) < (0)) __PYX_ERR(5, 9, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_AC", 0, 2, 5, i); __PYX_ERR(5, 9, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1263, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1263, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1263, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1263, __pyx_L3_error) + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 9, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 9, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 9, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 9, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 9, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 11, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)((int)-2147483648)); + } + if (values[3]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 11, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)((int)-2147483648)); + } + if (values[4]) { + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 11, __pyx_L3_error) + } else { + __pyx_v_signalperiod = ((int)((int)-2147483648)); } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLDRAGONFLYDOJI", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1263, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_AC", 0, 2, 5, __pyx_nargs); __PYX_ERR(5, 9, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLDRAGONFLYDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.stream_AC", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1265, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1265, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1265, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1265, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_436stream_CDLDRAGONFLYDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 11, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 11, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_446stream_AC(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod); /* function exit code */ goto __pyx_L0; @@ -57053,16 +58393,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_436stream_CDLDRAGONFLYDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_446stream_AC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod) { npy_intp __pyx_v_length; 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; + double __pyx_v_outreal; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -57070,53 +58408,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_436stream_CDLDRAGONFLYDOJI(CYTHON_UNUS 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_RefNannySetupContext("stream_AC", 0); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1285, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1287, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 33, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1289, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 35, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1291, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1293, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 37, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_v_outinteger = 0; + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - __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_v_retCode = TA_AC((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDRAGONFLYDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1296, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 40, __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_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1297, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 41, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -57126,13 +58448,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_436stream_CDLDRAGONFLYDOJI(CYTHON_UNUS /* 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_AddTraceback("talib._ta_lib.stream_AC", __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; @@ -57140,26 +58460,26 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_436stream_CDLDRAGONFLYDOJI(CYTHON_UNUS /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_439stream_CDLENGULFING(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_449stream_ACCBANDS(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_438stream_CDLENGULFING, "stream_CDLENGULFING(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLENGULFING(open, high, low, close)\n\nEngulfing Pattern (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_439stream_CDLENGULFING = {"stream_CDLENGULFING", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_439stream_CDLENGULFING, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_438stream_CDLENGULFING}; -static PyObject *__pyx_pw_5talib_7_ta_lib_439stream_CDLENGULFING(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_448stream_ACCBANDS, "stream_ACCBANDS(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nACCBANDS(high, low, close[, timeperiod=?])\n\nAcceleration Bands (Overlap Studies)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n timeperiod: 20\nOutputs:\n upperband\n middleband\n lowerband"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_449stream_ACCBANDS = {"stream_ACCBANDS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_449stream_ACCBANDS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_448stream_ACCBANDS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_449stream_ACCBANDS(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -57170,7 +58490,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLENGULFING (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_ACCBANDS (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -57180,70 +58500,78 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1299, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 43, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1299, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 43, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1299, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 43, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1299, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 43, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1299, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 43, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLENGULFING", 0) < (0)) __PYX_ERR(5, 1299, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLENGULFING", 1, 4, 4, i); __PYX_ERR(5, 1299, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_ACCBANDS", 0) < (0)) __PYX_ERR(5, 43, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_ACCBANDS", 0, 3, 4, i); __PYX_ERR(5, 43, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1299, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1299, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1299, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1299, __pyx_L3_error) + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 43, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 43, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 43, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 43, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 45, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLENGULFING", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1299, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_ACCBANDS", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 43, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLENGULFING", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.stream_ACCBANDS", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1301, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1301, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1301, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1301, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_438stream_CDLENGULFING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 45, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 45, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 45, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_448stream_ACCBANDS(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -57262,83 +58590,100 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_438stream_CDLENGULFING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_448stream_ACCBANDS(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_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; + double __pyx_v_outrealupperband; + double __pyx_v_outrealmiddleband; + double __pyx_v_outreallowerband; 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; + PyObject *__pyx_t_5 = NULL; 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_RefNannySetupContext("stream_ACCBANDS", 0); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1321, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1323, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 70, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1325, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 72, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1327, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 74, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1329, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 76, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_v_outinteger = 0; + __pyx_v_outrealupperband = __pyx_v_5talib_7_ta_lib_NaN; - __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_v_outrealmiddleband = __pyx_v_5talib_7_ta_lib_NaN; + + __pyx_v_outreallowerband = __pyx_v_5talib_7_ta_lib_NaN; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLENGULFING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1332, __pyx_L1_error) + __pyx_v_retCode = TA_ACCBANDS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outrealupperband), (&__pyx_v_outrealmiddleband), (&__pyx_v_outreallowerband)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACCBANDS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 81, __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_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1333, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outrealupperband); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 82, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outrealmiddleband); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 82, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outreallowerband); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 82, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 82, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 82, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3) != (0)) __PYX_ERR(5, 82, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4) != (0)) __PYX_ERR(5, 82, __pyx_L1_error); __pyx_t_1 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_r = __pyx_t_5; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLENGULFING", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.stream_ACCBANDS", __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); @@ -57349,38 +58694,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_438stream_CDLENGULFING(CYTHON_UNUSED P /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_441stream_CDLEVENINGDOJISTAR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_451stream_ACOS(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_440stream_CDLEVENINGDOJISTAR, "stream_CDLEVENINGDOJISTAR(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\n\nCDLEVENINGDOJISTAR(open, high, low, close[, penetration=?])\n\nEvening Doji Star (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_441stream_CDLEVENINGDOJISTAR = {"stream_CDLEVENINGDOJISTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_441stream_CDLEVENINGDOJISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_440stream_CDLEVENINGDOJISTAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_441stream_CDLEVENINGDOJISTAR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_450stream_ACOS, "stream_ACOS(ndarray real)\n\nACOS(real)\n\nVector Trigonometric ACos (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_451stream_ACOS = {"stream_ACOS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_451stream_ACOS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_450stream_ACOS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_451stream_ACOS(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - double __pyx_v_penetration; + PyArrayObject *__pyx_v_real = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLEVENINGDOJISTAR (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_ACOS (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -57390,86 +58731,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1335, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 84, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 1335, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1335, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1335, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1335, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1335, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 84, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLEVENINGDOJISTAR", 0) < (0)) __PYX_ERR(5, 1335, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLEVENINGDOJISTAR", 0, 4, 5, i); __PYX_ERR(5, 1335, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 1335, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1335, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1335, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1335, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1335, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_ACOS", 0) < (0)) __PYX_ERR(5, 84, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_ACOS", 1, 1, 1, i); __PYX_ERR(5, 84, __pyx_L3_error) } } - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 1337, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_penetration = ((double)((double)0.3)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 84, __pyx_L3_error) } + __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLEVENINGDOJISTAR", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 1335, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_ACOS", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 84, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLEVENINGDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.stream_ACOS", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1337, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1337, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1337, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1337, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_440stream_CDLEVENINGDOJISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 86, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_450stream_ACOS(__pyx_self, __pyx_v_real); /* function exit code */ goto __pyx_L0; @@ -57488,70 +58789,41 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_440stream_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) { +static PyObject *__pyx_pf_5talib_7_ta_lib_450stream_ACOS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { 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; + double *__pyx_v_real_data; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - int __pyx_v_outinteger; + 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_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(5, 1359, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1361, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1363, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + __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_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1365, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 103, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1367, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_v_outinteger = 0; + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - __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_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_mstate_global->__pyx_n_u_TA_CDLEVENINGDOJISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1370, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACOS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 108, __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_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1371, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -57561,13 +58833,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_440stream_CDLEVENINGDOJISTAR(CYTHON_UN /* 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_AddTraceback("talib._ta_lib.stream_ACOS", __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_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -57575,38 +58844,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_440stream_CDLEVENINGDOJISTAR(CYTHON_UN /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_443stream_CDLEVENINGSTAR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_453stream_AD(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_442stream_CDLEVENINGSTAR, "stream_CDLEVENINGSTAR(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\n\nCDLEVENINGSTAR(open, high, low, close[, penetration=?])\n\nEvening Star (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_443stream_CDLEVENINGSTAR = {"stream_CDLEVENINGSTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_443stream_CDLEVENINGSTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_442stream_CDLEVENINGSTAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_443stream_CDLEVENINGSTAR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_452stream_AD, "stream_AD(ndarray high, ndarray low, ndarray close, ndarray volume)\n\nAD(high, low, close, volume)\n\nChaikin A/D Line (Volume Indicators)\n\nInputs:\n prices: ['high', 'low', 'close', 'volume']\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_453stream_AD = {"stream_AD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_453stream_AD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_452stream_AD}; +static PyObject *__pyx_pw_5talib_7_ta_lib_453stream_AD(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; - double __pyx_v_penetration; + PyArrayObject *__pyx_v_volume = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLEVENINGSTAR (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_AD (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -57616,86 +58884,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1373, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 111, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 1373, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1373, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 111, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1373, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 111, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1373, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 111, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1373, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 111, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLEVENINGSTAR", 0) < (0)) __PYX_ERR(5, 1373, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_AD", 0) < (0)) __PYX_ERR(5, 111, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLEVENINGSTAR", 0, 4, 5, i); __PYX_ERR(5, 1373, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_AD", 1, 4, 4, i); __PYX_ERR(5, 111, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 1373, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1373, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1373, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1373, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1373, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 1375, __pyx_L3_error) - } else { - __pyx_v_penetration = ((double)((double)0.3)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 111, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 111, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 111, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 111, __pyx_L3_error) } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + __pyx_v_volume = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLEVENINGSTAR", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 1373, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_AD", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 111, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLEVENINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1375, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1375, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1375, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1375, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_442stream_CDLEVENINGSTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 113, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 113, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 113, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 113, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_452stream_AD(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); /* function exit code */ goto __pyx_L0; @@ -57714,16 +58966,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_442stream_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) { +static PyObject *__pyx_pf_5talib_7_ta_lib_452stream_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_open_data; 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; - int __pyx_v_outinteger; + double __pyx_v_outreal; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -57731,53 +58983,53 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_442stream_CDLEVENINGSTAR(CYTHON_UNUSED 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_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_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1397, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1399, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 133, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1401, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 135, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1403, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 137, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1405, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 139, __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_f_5numpy_7ndarray_4data_data(__pyx_v_volume)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 141, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_v_outinteger = 0; + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - __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_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_mstate_global->__pyx_n_u_TA_CDLEVENINGSTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1408, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 144, __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_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1409, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 145, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -57787,13 +59039,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_442stream_CDLEVENINGSTAR(CYTHON_UNUSED /* 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_AddTraceback("talib._ta_lib.stream_AD", __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_XDECREF((PyObject *)__pyx_v_volume); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -57801,37 +59053,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_442stream_CDLEVENINGSTAR(CYTHON_UNUSED /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_445stream_CDLGAPSIDESIDEWHITE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_455stream_ADD(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_444stream_CDLGAPSIDESIDEWHITE, "stream_CDLGAPSIDESIDEWHITE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLGAPSIDESIDEWHITE(open, high, low, close)\n\nUp/Down-gap side-by-side white lines (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_445stream_CDLGAPSIDESIDEWHITE = {"stream_CDLGAPSIDESIDEWHITE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_445stream_CDLGAPSIDESIDEWHITE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_444stream_CDLGAPSIDESIDEWHITE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_445stream_CDLGAPSIDESIDEWHITE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_454stream_ADD, "stream_ADD(ndarray real0, ndarray real1)\n\nADD(real0, real1)\n\nVector Arithmetic Add (Math Operators)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_455stream_ADD = {"stream_ADD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_455stream_ADD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_454stream_ADD}; +static PyObject *__pyx_pw_5talib_7_ta_lib_455stream_ADD(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + PyArrayObject *__pyx_v_real0 = 0; + PyArrayObject *__pyx_v_real1 = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLGAPSIDESIDEWHITE (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_ADD (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -57841,70 +59091,54 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1411, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 147, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1411, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1411, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1411, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 147, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1411, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 147, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLGAPSIDESIDEWHITE", 0) < (0)) __PYX_ERR(5, 1411, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLGAPSIDESIDEWHITE", 1, 4, 4, i); __PYX_ERR(5, 1411, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_ADD", 0) < (0)) __PYX_ERR(5, 147, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_ADD", 1, 2, 2, i); __PYX_ERR(5, 147, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1411, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 147, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1411, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1411, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1411, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 147, __pyx_L3_error) } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + __pyx_v_real0 = ((PyArrayObject *)values[0]); + __pyx_v_real1 = ((PyArrayObject *)values[1]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLGAPSIDESIDEWHITE", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1411, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_ADD", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 147, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLGAPSIDESIDEWHITE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1413, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1413, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1413, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1413, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_444stream_CDLGAPSIDESIDEWHITE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(5, 149, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(5, 149, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_454stream_ADD(__pyx_self, __pyx_v_real0, __pyx_v_real1); /* function exit code */ goto __pyx_L0; @@ -57923,16 +59157,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_444stream_CDLGAPSIDESIDEWHITE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_454stream_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_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; + double *__pyx_v_real0_data; + double *__pyx_v_real1_data; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - int __pyx_v_outinteger; + double __pyx_v_outreal; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -57940,53 +59172,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_444stream_CDLGAPSIDESIDEWHITE(CYTHON_U 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(5, 1433, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1435, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + __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_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1437, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 168, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + __pyx_v_real0_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1439, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + __pyx_v_real1_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1441, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 172, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_v_outinteger = 0; + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - __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_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_mstate_global->__pyx_n_u_TA_CDLGAPSIDESIDEWHITE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1444, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 175, __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_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1445, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 176, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -57996,13 +59212,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_444stream_CDLGAPSIDESIDEWHITE(CYTHON_U /* 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_AddTraceback("talib._ta_lib.stream_ADD", __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_XDECREF((PyObject *)__pyx_v_real0); + __Pyx_XDECREF((PyObject *)__pyx_v_real1); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -58010,37 +59224,39 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_444stream_CDLGAPSIDESIDEWHITE(CYTHON_U /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_447stream_CDLGRAVESTONEDOJI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_457stream_ADOSC(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_446stream_CDLGRAVESTONEDOJI, "stream_CDLGRAVESTONEDOJI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLGRAVESTONEDOJI(open, high, low, close)\n\nGravestone Doji (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_447stream_CDLGRAVESTONEDOJI = {"stream_CDLGRAVESTONEDOJI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_447stream_CDLGRAVESTONEDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_446stream_CDLGRAVESTONEDOJI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_447stream_CDLGRAVESTONEDOJI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_456stream_ADOSC, "stream_ADOSC(ndarray high, ndarray low, ndarray close, ndarray volume, int fastperiod=-0x80000000, int slowperiod=-0x80000000)\n\nADOSC(high, low, close, volume[, fastperiod=?, slowperiod=?])\n\nChaikin A/D Oscillator (Volume Indicators)\n\nInputs:\n prices: ['high', 'low', 'close', 'volume']\nParameters:\n fastperiod: 3\n slowperiod: 10\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_457stream_ADOSC = {"stream_ADOSC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_457stream_ADOSC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_456stream_ADOSC}; +static PyObject *__pyx_pw_5talib_7_ta_lib_457stream_ADOSC(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; + PyArrayObject *__pyx_v_volume = 0; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[6] = {0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLGRAVESTONEDOJI (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_ADOSC (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -58050,70 +59266,99 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1447, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 178, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 178, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 178, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1447, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 178, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1447, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 178, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1447, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 178, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1447, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 178, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLGRAVESTONEDOJI", 0) < (0)) __PYX_ERR(5, 1447, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_ADOSC", 0) < (0)) __PYX_ERR(5, 178, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLGRAVESTONEDOJI", 1, 4, 4, i); __PYX_ERR(5, 1447, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_ADOSC", 0, 4, 6, i); __PYX_ERR(5, 178, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1447, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1447, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1447, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1447, __pyx_L3_error) + switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 178, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 178, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 178, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 178, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 178, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 178, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + __pyx_v_volume = ((PyArrayObject *)values[3]); + if (values[4]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 180, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)((int)-2147483648)); + } + if (values[5]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 180, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)((int)-2147483648)); } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLGRAVESTONEDOJI", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1447, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_ADOSC", 0, 4, 6, __pyx_nargs); __PYX_ERR(5, 178, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLGRAVESTONEDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1449, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1449, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1449, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1449, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_446stream_CDLGRAVESTONEDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 180, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 180, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 180, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 180, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_456stream_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; @@ -58132,16 +59377,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_446stream_CDLGRAVESTONEDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_456stream_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_open_data; 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; - int __pyx_v_outinteger; + double __pyx_v_outreal; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -58149,53 +59394,53 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_446stream_CDLGRAVESTONEDOJI(CYTHON_UNU 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_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_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1469, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1471, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 203, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1473, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 205, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1475, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 207, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1477, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 209, __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_f_5numpy_7ndarray_4data_data(__pyx_v_volume)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 211, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_v_outinteger = 0; + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - __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_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_mstate_global->__pyx_n_u_TA_CDLGRAVESTONEDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1480, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 214, __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_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1481, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -58205,13 +59450,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_446stream_CDLGRAVESTONEDOJI(CYTHON_UNU /* 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_AddTraceback("talib._ta_lib.stream_ADOSC", __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_XDECREF((PyObject *)__pyx_v_volume); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -58219,37 +59464,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_446stream_CDLGRAVESTONEDOJI(CYTHON_UNU /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_449stream_CDLHAMMER(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_459stream_ADR(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_448stream_CDLHAMMER, "stream_CDLHAMMER(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHAMMER(open, high, low, close)\n\nHammer (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_449stream_CDLHAMMER = {"stream_CDLHAMMER", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_449stream_CDLHAMMER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_448stream_CDLHAMMER}; -static PyObject *__pyx_pw_5talib_7_ta_lib_449stream_CDLHAMMER(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_458stream_ADR, "stream_ADR(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nADR(high, low[, timeperiod=?])\n\nAverage Day Range (Volatility Indicators)\n\nInputs:\n prices: ['high', 'low']\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_459stream_ADR = {"stream_ADR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_459stream_ADR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_458stream_ADR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_459stream_ADR(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLHAMMER (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_ADR (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -58259,70 +59503,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1483, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 217, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1483, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1483, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 217, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1483, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 217, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1483, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 217, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLHAMMER", 0) < (0)) __PYX_ERR(5, 1483, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLHAMMER", 1, 4, 4, i); __PYX_ERR(5, 1483, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_ADR", 0) < (0)) __PYX_ERR(5, 217, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_ADR", 0, 2, 3, i); __PYX_ERR(5, 217, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1483, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1483, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1483, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1483, __pyx_L3_error) + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 217, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 217, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 217, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 219, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLHAMMER", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1483, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_ADR", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 217, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLHAMMER", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.stream_ADR", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1485, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1485, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1485, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1485, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_448stream_CDLHAMMER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 219, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 219, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_458stream_ADR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -58341,16 +59585,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_448stream_CDLHAMMER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_458stream_ADR(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_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; + double __pyx_v_outreal; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -58358,53 +59600,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_448stream_CDLHAMMER(CYTHON_UNUSED PyOb 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_RefNannySetupContext("stream_ADR", 0); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1505, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1507, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 239, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1509, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 241, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1511, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1513, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 243, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_v_outinteger = 0; + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - __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_v_retCode = TA_ADR((((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_mstate_global->__pyx_n_u_TA_CDLHAMMER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1516, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 246, __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_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1517, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 247, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -58414,13 +59640,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_448stream_CDLHAMMER(CYTHON_UNUSED PyOb /* 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_AddTraceback("talib._ta_lib.stream_ADR", __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; @@ -58428,26 +59652,26 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_448stream_CDLHAMMER(CYTHON_UNUSED PyOb /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_451stream_CDLHANGINGMAN(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_461stream_ADX(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_450stream_CDLHANGINGMAN, "stream_CDLHANGINGMAN(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHANGINGMAN(open, high, low, close)\n\nHanging Man (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_451stream_CDLHANGINGMAN = {"stream_CDLHANGINGMAN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_451stream_CDLHANGINGMAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_450stream_CDLHANGINGMAN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_451stream_CDLHANGINGMAN(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_460stream_ADX, "stream_ADX(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nADX(high, low, close[, timeperiod=?])\n\nAverage Directional Movement Index (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_461stream_ADX = {"stream_ADX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_461stream_ADX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_460stream_ADX}; +static PyObject *__pyx_pw_5talib_7_ta_lib_461stream_ADX(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -58458,7 +59682,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLHANGINGMAN (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_ADX (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -58468,70 +59692,78 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1519, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 249, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1519, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 249, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1519, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 249, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1519, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 249, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1519, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 249, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLHANGINGMAN", 0) < (0)) __PYX_ERR(5, 1519, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLHANGINGMAN", 1, 4, 4, i); __PYX_ERR(5, 1519, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_ADX", 0) < (0)) __PYX_ERR(5, 249, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_ADX", 0, 3, 4, i); __PYX_ERR(5, 249, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1519, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1519, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1519, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1519, __pyx_L3_error) + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 249, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 249, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 249, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 249, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 251, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLHANGINGMAN", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1519, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_ADX", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 249, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLHANGINGMAN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1521, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1521, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1521, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1521, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_450stream_CDLHANGINGMAN(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 251, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 251, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 251, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_460stream_ADX(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -58550,16 +59782,15 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_450stream_CDLHANGINGMAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_460stream_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_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; + double __pyx_v_outreal; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -58567,53 +59798,45 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_450stream_CDLHANGINGMAN(CYTHON_UNUSED 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_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_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1541, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1543, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 272, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1545, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 274, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1547, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 276, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1549, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 278, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_v_outinteger = 0; + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - __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_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_mstate_global->__pyx_n_u_TA_CDLHANGINGMAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1552, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 281, __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_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1553, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -58623,10 +59846,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_450stream_CDLHANGINGMAN(CYTHON_UNUSED /* 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_AddTraceback("talib._ta_lib.stream_ADX", __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); @@ -58637,26 +59859,26 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_450stream_CDLHANGINGMAN(CYTHON_UNUSED /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_453stream_CDLHARAMI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_463stream_ADXR(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_452stream_CDLHARAMI, "stream_CDLHARAMI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHARAMI(open, high, low, close)\n\nHarami Pattern (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_453stream_CDLHARAMI = {"stream_CDLHARAMI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_453stream_CDLHARAMI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_452stream_CDLHARAMI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_453stream_CDLHARAMI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_462stream_ADXR, "stream_ADXR(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nADXR(high, low, close[, timeperiod=?])\n\nAverage Directional Movement Index Rating (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_463stream_ADXR = {"stream_ADXR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_463stream_ADXR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_462stream_ADXR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_463stream_ADXR(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -58667,7 +59889,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLHARAMI (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_ADXR (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -58677,70 +59899,78 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1555, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 284, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1555, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 284, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1555, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 284, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1555, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 284, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1555, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 284, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLHARAMI", 0) < (0)) __PYX_ERR(5, 1555, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLHARAMI", 1, 4, 4, i); __PYX_ERR(5, 1555, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_ADXR", 0) < (0)) __PYX_ERR(5, 284, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_ADXR", 0, 3, 4, i); __PYX_ERR(5, 284, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1555, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1555, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1555, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1555, __pyx_L3_error) + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 284, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 284, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 284, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 284, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 286, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLHARAMI", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1555, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_ADXR", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 284, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLHARAMI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1557, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1557, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1557, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1557, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_452stream_CDLHARAMI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 286, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 286, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 286, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_462stream_ADXR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -58759,16 +59989,15 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_452stream_CDLHARAMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_462stream_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_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; + double __pyx_v_outreal; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -58776,53 +60005,45 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_452stream_CDLHARAMI(CYTHON_UNUSED PyOb 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_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_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1577, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1579, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 307, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1581, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 309, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1583, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 311, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1585, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 313, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_v_outinteger = 0; + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - __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_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_mstate_global->__pyx_n_u_TA_CDLHARAMI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1588, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADXR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 316, __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_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1589, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 317, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -58832,10 +60053,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_452stream_CDLHARAMI(CYTHON_UNUSED PyOb /* 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_AddTraceback("talib._ta_lib.stream_ADXR", __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); @@ -58846,26 +60066,26 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_452stream_CDLHARAMI(CYTHON_UNUSED PyOb /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_455stream_CDLHARAMICROSS(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_465stream_AO(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_454stream_CDLHARAMICROSS, "stream_CDLHARAMICROSS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHARAMICROSS(open, high, low, close)\n\nHarami Cross Pattern (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_455stream_CDLHARAMICROSS = {"stream_CDLHARAMICROSS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_455stream_CDLHARAMICROSS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_454stream_CDLHARAMICROSS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_455stream_CDLHARAMICROSS(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_464stream_AO, "stream_AO(ndarray high, ndarray low, int fastperiod=-0x80000000, int slowperiod=-0x80000000)\n\nAO(high, low[, fastperiod=?, slowperiod=?])\n\nAwesome Oscillator (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low']\nParameters:\n fastperiod: 5\n slowperiod: 34\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_465stream_AO = {"stream_AO", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_465stream_AO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_464stream_AO}; +static PyObject *__pyx_pw_5talib_7_ta_lib_465stream_AO(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -58876,7 +60096,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLHARAMICROSS (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_AO (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -58886,70 +60106,83 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1591, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 319, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1591, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 319, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1591, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 319, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1591, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 319, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1591, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 319, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLHARAMICROSS", 0) < (0)) __PYX_ERR(5, 1591, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLHARAMICROSS", 1, 4, 4, i); __PYX_ERR(5, 1591, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_AO", 0) < (0)) __PYX_ERR(5, 319, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_AO", 0, 2, 4, i); __PYX_ERR(5, 319, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1591, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1591, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1591, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1591, __pyx_L3_error) + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 319, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 319, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 319, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 319, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 321, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)((int)-2147483648)); + } + if (values[3]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 321, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)((int)-2147483648)); } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLHARAMICROSS", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1591, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_AO", 0, 2, 4, __pyx_nargs); __PYX_ERR(5, 319, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLHARAMICROSS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.stream_AO", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1593, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1593, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1593, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1593, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_454stream_CDLHARAMICROSS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 321, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 321, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_464stream_AO(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_fastperiod, __pyx_v_slowperiod); /* function exit code */ goto __pyx_L0; @@ -58968,16 +60201,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_454stream_CDLHARAMICROSS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_464stream_AO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod) { npy_intp __pyx_v_length; 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; + double __pyx_v_outreal; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -58985,53 +60216,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_454stream_CDLHARAMICROSS(CYTHON_UNUSED 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_RefNannySetupContext("stream_AO", 0); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1613, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1615, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 342, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1617, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 344, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1619, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1621, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 346, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_v_outinteger = 0; + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - __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_v_retCode = TA_AO((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_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_mstate_global->__pyx_n_u_TA_CDLHARAMICROSS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1624, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 349, __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_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1625, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 350, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -59041,13 +60256,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_454stream_CDLHARAMICROSS(CYTHON_UNUSED /* 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_AddTraceback("talib._ta_lib.stream_AO", __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; @@ -59055,26 +60268,26 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_454stream_CDLHARAMICROSS(CYTHON_UNUSED /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_457stream_CDLHIGHWAVE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_467stream_APO(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_456stream_CDLHIGHWAVE, "stream_CDLHIGHWAVE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHIGHWAVE(open, high, low, close)\n\nHigh-Wave Candle (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_457stream_CDLHIGHWAVE = {"stream_CDLHIGHWAVE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_457stream_CDLHIGHWAVE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_456stream_CDLHIGHWAVE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_457stream_CDLHIGHWAVE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_466stream_APO, "stream_APO(ndarray real, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int matype=1)\n\nAPO(real[, fastperiod=?, slowperiod=?, matype=?])\n\nAbsolute Price Oscillator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastperiod: 12\n slowperiod: 26\n matype: 1 (Exponential Moving Average)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_467stream_APO = {"stream_APO", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_467stream_APO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_466stream_APO}; +static PyObject *__pyx_pw_5talib_7_ta_lib_467stream_APO(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + int __pyx_v_matype; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -59085,7 +60298,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLHIGHWAVE (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_APO (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -59095,70 +60308,88 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1627, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 352, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1627, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 352, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1627, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 352, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1627, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 352, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1627, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 352, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLHIGHWAVE", 0) < (0)) __PYX_ERR(5, 1627, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLHIGHWAVE", 1, 4, 4, i); __PYX_ERR(5, 1627, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_APO", 0) < (0)) __PYX_ERR(5, 352, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_APO", 0, 1, 4, i); __PYX_ERR(5, 352, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1627, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1627, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1627, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1627, __pyx_L3_error) + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 352, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 352, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 352, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 352, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 354, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 354, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)((int)-2147483648)); + } + if (values[3]) { + __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 354, __pyx_L3_error) + } else { + __pyx_v_matype = ((int)((int)1)); } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLHIGHWAVE", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1627, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_APO", 0, 1, 4, __pyx_nargs); __PYX_ERR(5, 352, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLHIGHWAVE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1629, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1629, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1629, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1629, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_456stream_CDLHIGHWAVE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 354, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_466stream_APO(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype); /* function exit code */ goto __pyx_L0; @@ -59177,70 +60408,41 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_456stream_CDLHIGHWAVE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_466stream_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_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; + double *__pyx_v_real_data; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - int __pyx_v_outinteger; + 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_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(5, 1649, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1651, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1653, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + __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_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1655, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 375, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1657, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_v_outinteger = 0; + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - __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_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_mstate_global->__pyx_n_u_TA_CDLHIGHWAVE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1660, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_APO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 380, __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_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1661, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 381, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -59250,13 +60452,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_456stream_CDLHIGHWAVE(CYTHON_UNUSED Py /* 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_AddTraceback("talib._ta_lib.stream_APO", __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_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -59264,37 +60463,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_456stream_CDLHIGHWAVE(CYTHON_UNUSED Py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_459stream_CDLHIKKAKE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_469stream_AROON(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_458stream_CDLHIKKAKE, "stream_CDLHIKKAKE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHIKKAKE(open, high, low, close)\n\nHikkake Pattern (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_459stream_CDLHIKKAKE = {"stream_CDLHIKKAKE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_459stream_CDLHIKKAKE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_458stream_CDLHIKKAKE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_459stream_CDLHIKKAKE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_468stream_AROON, "stream_AROON(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nAROON(high, low[, timeperiod=?])\n\nAroon (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low']\nParameters:\n timeperiod: 14\nOutputs:\n aroondown\n aroonup"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_469stream_AROON = {"stream_AROON", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_469stream_AROON, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_468stream_AROON}; +static PyObject *__pyx_pw_5talib_7_ta_lib_469stream_AROON(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLHIKKAKE (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_AROON (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -59304,70 +60502,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1663, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 383, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1663, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1663, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 383, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1663, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 383, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1663, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 383, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLHIKKAKE", 0) < (0)) __PYX_ERR(5, 1663, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLHIKKAKE", 1, 4, 4, i); __PYX_ERR(5, 1663, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_AROON", 0) < (0)) __PYX_ERR(5, 383, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_AROON", 0, 2, 3, i); __PYX_ERR(5, 383, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1663, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1663, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1663, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1663, __pyx_L3_error) + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 383, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 383, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 383, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 385, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLHIKKAKE", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1663, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_AROON", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 383, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLHIKKAKE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1665, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1665, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1665, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1665, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_458stream_CDLHIKKAKE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 385, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 385, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_468stream_AROON(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -59386,86 +60584,83 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_458stream_CDLHIKKAKE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_468stream_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_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; + 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_CDLHIKKAKE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_RefNannySetupContext("stream_AROON", 0); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1685, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1687, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 407, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1689, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 409, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1691, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1693, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 411, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_v_outinteger = 0; + __pyx_v_outaroondown = __pyx_v_5talib_7_ta_lib_NaN; - __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_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_mstate_global->__pyx_n_u_TA_CDLHIKKAKE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1696, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROON, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 415, __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_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1697, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outaroondown); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 416, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outaroonup); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 416, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 416, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 416, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(5, 416, __pyx_L1_error); __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_AddTraceback("talib._ta_lib.stream_CDLHIKKAKE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_open); __Pyx_XDECREF((PyObject *)__pyx_v_high); __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -59473,37 +60668,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_458stream_CDLHIKKAKE(CYTHON_UNUSED PyO /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_461stream_CDLHIKKAKEMOD(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_471stream_AROONOSC(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_460stream_CDLHIKKAKEMOD, "stream_CDLHIKKAKEMOD(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHIKKAKEMOD(open, high, low, close)\n\nModified Hikkake Pattern (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_461stream_CDLHIKKAKEMOD = {"stream_CDLHIKKAKEMOD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_461stream_CDLHIKKAKEMOD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_460stream_CDLHIKKAKEMOD}; -static PyObject *__pyx_pw_5talib_7_ta_lib_461stream_CDLHIKKAKEMOD(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_470stream_AROONOSC, "stream_AROONOSC(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nAROONOSC(high, low[, timeperiod=?])\n\nAroon Oscillator (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low']\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_471stream_AROONOSC = {"stream_AROONOSC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_471stream_AROONOSC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_470stream_AROONOSC}; +static PyObject *__pyx_pw_5talib_7_ta_lib_471stream_AROONOSC(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLHIKKAKEMOD (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_AROONOSC (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -59513,70 +60707,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1699, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 418, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1699, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1699, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 418, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1699, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 418, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1699, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 418, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLHIKKAKEMOD", 0) < (0)) __PYX_ERR(5, 1699, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLHIKKAKEMOD", 1, 4, 4, i); __PYX_ERR(5, 1699, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_AROONOSC", 0) < (0)) __PYX_ERR(5, 418, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_AROONOSC", 0, 2, 3, i); __PYX_ERR(5, 418, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1699, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1699, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1699, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1699, __pyx_L3_error) + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 418, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 418, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 418, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 420, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLHIKKAKEMOD", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1699, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_AROONOSC", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 418, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLHIKKAKEMOD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1701, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1701, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1701, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1701, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_460stream_CDLHIKKAKEMOD(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 420, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 420, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_470stream_AROONOSC(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -59595,16 +60789,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_460stream_CDLHIKKAKEMOD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_470stream_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_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; + double __pyx_v_outreal; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -59612,53 +60804,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_460stream_CDLHIKKAKEMOD(CYTHON_UNUSED 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_RefNannySetupContext("stream_AROONOSC", 0); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1721, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1723, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 440, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1725, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 442, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1727, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1729, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 444, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_v_outinteger = 0; + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - __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_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_mstate_global->__pyx_n_u_TA_CDLHIKKAKEMOD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1732, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROONOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 447, __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_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1733, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 448, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -59668,13 +60844,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_460stream_CDLHIKKAKEMOD(CYTHON_UNUSED /* 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_AddTraceback("talib._ta_lib.stream_AROONOSC", __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; @@ -59682,37 +60856,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_460stream_CDLHIKKAKEMOD(CYTHON_UNUSED /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_463stream_CDLHOMINGPIGEON(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_473stream_ASIN(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_462stream_CDLHOMINGPIGEON, "stream_CDLHOMINGPIGEON(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHOMINGPIGEON(open, high, low, close)\n\nHoming Pigeon (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_463stream_CDLHOMINGPIGEON = {"stream_CDLHOMINGPIGEON", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_463stream_CDLHOMINGPIGEON, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_462stream_CDLHOMINGPIGEON}; -static PyObject *__pyx_pw_5talib_7_ta_lib_463stream_CDLHOMINGPIGEON(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_472stream_ASIN, "stream_ASIN(ndarray real)\n\nASIN(real)\n\nVector Trigonometric ASin (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_473stream_ASIN = {"stream_ASIN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_473stream_ASIN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_472stream_ASIN}; +static PyObject *__pyx_pw_5talib_7_ta_lib_473stream_ASIN(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + PyArrayObject *__pyx_v_real = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLHOMINGPIGEON (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_ASIN (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -59722,70 +60893,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1735, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 450, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1735, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1735, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1735, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1735, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 450, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLHOMINGPIGEON", 0) < (0)) __PYX_ERR(5, 1735, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLHOMINGPIGEON", 1, 4, 4, i); __PYX_ERR(5, 1735, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_ASIN", 0) < (0)) __PYX_ERR(5, 450, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_ASIN", 1, 1, 1, i); __PYX_ERR(5, 450, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1735, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1735, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1735, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1735, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 450, __pyx_L3_error) } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLHOMINGPIGEON", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1735, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_ASIN", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 450, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLHOMINGPIGEON", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.stream_ASIN", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1737, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1737, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1737, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1737, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_462stream_CDLHOMINGPIGEON(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 452, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_472stream_ASIN(__pyx_self, __pyx_v_real); /* function exit code */ goto __pyx_L0; @@ -59804,70 +60951,41 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_462stream_CDLHOMINGPIGEON(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_472stream_ASIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { 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; + double *__pyx_v_real_data; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - int __pyx_v_outinteger; + 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_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(5, 1757, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1759, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1761, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + __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_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1763, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 469, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1765, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_v_outinteger = 0; + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - __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_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_mstate_global->__pyx_n_u_TA_CDLHOMINGPIGEON, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1768, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ASIN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 474, __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_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1769, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 475, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -59877,13 +60995,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_462stream_CDLHOMINGPIGEON(CYTHON_UNUSE /* 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_AddTraceback("talib._ta_lib.stream_ASIN", __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_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -59891,37 +61006,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_462stream_CDLHOMINGPIGEON(CYTHON_UNUSE /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_465stream_CDLIDENTICAL3CROWS(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_475stream_ATAN(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_464stream_CDLIDENTICAL3CROWS, "stream_CDLIDENTICAL3CROWS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLIDENTICAL3CROWS(open, high, low, close)\n\nIdentical Three Crows (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_465stream_CDLIDENTICAL3CROWS = {"stream_CDLIDENTICAL3CROWS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_465stream_CDLIDENTICAL3CROWS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_464stream_CDLIDENTICAL3CROWS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_465stream_CDLIDENTICAL3CROWS(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_474stream_ATAN, "stream_ATAN(ndarray real)\n\nATAN(real)\n\nVector Trigonometric ATan (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_475stream_ATAN = {"stream_ATAN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_475stream_ATAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_474stream_ATAN}; +static PyObject *__pyx_pw_5talib_7_ta_lib_475stream_ATAN(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + PyArrayObject *__pyx_v_real = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLIDENTICAL3CROWS (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_ATAN (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -59931,70 +61043,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1771, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 477, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1771, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1771, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1771, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1771, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 477, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLIDENTICAL3CROWS", 0) < (0)) __PYX_ERR(5, 1771, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLIDENTICAL3CROWS", 1, 4, 4, i); __PYX_ERR(5, 1771, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_ATAN", 0) < (0)) __PYX_ERR(5, 477, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_ATAN", 1, 1, 1, i); __PYX_ERR(5, 477, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1771, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1771, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1771, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1771, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 477, __pyx_L3_error) } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLIDENTICAL3CROWS", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1771, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_ATAN", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 477, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLIDENTICAL3CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.stream_ATAN", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1773, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1773, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1773, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1773, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_464stream_CDLIDENTICAL3CROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 479, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_474stream_ATAN(__pyx_self, __pyx_v_real); /* function exit code */ goto __pyx_L0; @@ -60013,70 +61101,41 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_464stream_CDLIDENTICAL3CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_474stream_ATAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { 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; + double *__pyx_v_real_data; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - int __pyx_v_outinteger; + 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_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(5, 1793, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1795, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1797, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + __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_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1799, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 496, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1801, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_v_outinteger = 0; + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - __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_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_mstate_global->__pyx_n_u_TA_CDLIDENTICAL3CROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1804, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 501, __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_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1805, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 502, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -60086,13 +61145,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_464stream_CDLIDENTICAL3CROWS(CYTHON_UN /* 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_AddTraceback("talib._ta_lib.stream_ATAN", __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_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -60100,26 +61156,26 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_464stream_CDLIDENTICAL3CROWS(CYTHON_UN /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_467stream_CDLINNECK(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_477stream_ATR(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_466stream_CDLINNECK, "stream_CDLINNECK(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLINNECK(open, high, low, close)\n\nIn-Neck Pattern (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_467stream_CDLINNECK = {"stream_CDLINNECK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_467stream_CDLINNECK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_466stream_CDLINNECK}; -static PyObject *__pyx_pw_5talib_7_ta_lib_467stream_CDLINNECK(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_476stream_ATR, "stream_ATR(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nATR(high, low, close[, timeperiod=?])\n\nAverage True Range (Volatility Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_477stream_ATR = {"stream_ATR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_477stream_ATR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_476stream_ATR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_477stream_ATR(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -60130,7 +61186,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLINNECK (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_ATR (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -60140,70 +61196,78 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1807, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 504, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1807, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 504, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1807, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 504, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1807, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 504, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1807, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 504, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLINNECK", 0) < (0)) __PYX_ERR(5, 1807, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLINNECK", 1, 4, 4, i); __PYX_ERR(5, 1807, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_ATR", 0) < (0)) __PYX_ERR(5, 504, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_ATR", 0, 3, 4, i); __PYX_ERR(5, 504, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1807, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1807, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1807, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1807, __pyx_L3_error) + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 504, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 504, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 504, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 504, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 506, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLINNECK", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1807, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_ATR", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 504, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLINNECK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1809, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1809, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1809, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1809, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_466stream_CDLINNECK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 506, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 506, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 506, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_476stream_ATR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -60222,16 +61286,15 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_466stream_CDLINNECK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_476stream_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_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; + double __pyx_v_outreal; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -60239,53 +61302,45 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_466stream_CDLINNECK(CYTHON_UNUSED PyOb 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_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_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1829, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1831, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 527, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1833, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 529, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1835, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 531, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1837, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 533, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_v_outinteger = 0; + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - __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_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_mstate_global->__pyx_n_u_TA_CDLINNECK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1840, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 536, __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_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1841, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 537, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -60295,10 +61350,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_466stream_CDLINNECK(CYTHON_UNUSED PyOb /* 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_AddTraceback("talib._ta_lib.stream_ATR", __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); @@ -60309,37 +61363,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_466stream_CDLINNECK(CYTHON_UNUSED PyOb /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_469stream_CDLINVERTEDHAMMER(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_479stream_AVGDEV(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_468stream_CDLINVERTEDHAMMER, "stream_CDLINVERTEDHAMMER(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLINVERTEDHAMMER(open, high, low, close)\n\nInverted Hammer (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_469stream_CDLINVERTEDHAMMER = {"stream_CDLINVERTEDHAMMER", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_469stream_CDLINVERTEDHAMMER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_468stream_CDLINVERTEDHAMMER}; -static PyObject *__pyx_pw_5talib_7_ta_lib_469stream_CDLINVERTEDHAMMER(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_478stream_AVGDEV, "stream_AVGDEV(ndarray real, int timeperiod=-0x80000000)\n\nAVGDEV(real[, timeperiod=?])\n\nAverage Deviation (Price Transform)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_479stream_AVGDEV = {"stream_AVGDEV", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_479stream_AVGDEV, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_478stream_AVGDEV}; +static PyObject *__pyx_pw_5talib_7_ta_lib_479stream_AVGDEV(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLINVERTEDHAMMER (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_AVGDEV (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -60349,70 +61401,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1843, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 539, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1843, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1843, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1843, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 539, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1843, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 539, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLINVERTEDHAMMER", 0) < (0)) __PYX_ERR(5, 1843, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLINVERTEDHAMMER", 1, 4, 4, i); __PYX_ERR(5, 1843, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_AVGDEV", 0) < (0)) __PYX_ERR(5, 539, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_AVGDEV", 0, 1, 2, i); __PYX_ERR(5, 539, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1843, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1843, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1843, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1843, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 539, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 539, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 541, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLINVERTEDHAMMER", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1843, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_AVGDEV", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 539, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLINVERTEDHAMMER", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.stream_AVGDEV", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1845, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1845, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1845, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1845, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_468stream_CDLINVERTEDHAMMER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 541, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_478stream_AVGDEV(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -60431,70 +61475,41 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_468stream_CDLINVERTEDHAMMER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_478stream_AVGDEV(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_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; + double *__pyx_v_real_data; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - int __pyx_v_outinteger; + 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_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(5, 1865, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1867, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1869, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + __Pyx_RefNannySetupContext("stream_AVGDEV", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1871, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 560, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1873, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_v_outinteger = 0; + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - __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_v_retCode = TA_AVGDEV((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINVERTEDHAMMER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1876, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGDEV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 565, __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_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1877, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 566, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -60504,13 +61519,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_468stream_CDLINVERTEDHAMMER(CYTHON_UNU /* 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_AddTraceback("talib._ta_lib.stream_AVGDEV", __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_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -60518,16 +61530,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_468stream_CDLINVERTEDHAMMER(CYTHON_UNU /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_471stream_CDLKICKING(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_481stream_AVGPRICE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_470stream_CDLKICKING, "stream_CDLKICKING(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLKICKING(open, high, low, close)\n\nKicking (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_471stream_CDLKICKING = {"stream_CDLKICKING", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_471stream_CDLKICKING, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_470stream_CDLKICKING}; -static PyObject *__pyx_pw_5talib_7_ta_lib_471stream_CDLKICKING(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_480stream_AVGPRICE, "stream_AVGPRICE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nAVGPRICE(open, high, low, close)\n\nAverage Price (Price Transform)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_481stream_AVGPRICE = {"stream_AVGPRICE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_481stream_AVGPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_480stream_AVGPRICE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_481stream_AVGPRICE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -60548,7 +61560,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLKICKING (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_AVGPRICE (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -60560,44 +61572,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1879, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 568, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1879, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 568, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1879, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 568, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1879, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 568, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1879, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 568, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLKICKING", 0) < (0)) __PYX_ERR(5, 1879, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_AVGPRICE", 0) < (0)) __PYX_ERR(5, 568, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLKICKING", 1, 4, 4, i); __PYX_ERR(5, 1879, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_AVGPRICE", 1, 4, 4, i); __PYX_ERR(5, 568, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1879, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 568, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1879, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 568, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1879, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 568, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1879, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 568, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -60606,22 +61618,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLKICKING", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1879, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_AVGPRICE", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 568, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLKICKING", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1881, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1881, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1881, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1881, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_470stream_CDLKICKING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 570, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 570, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 570, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 570, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_480stream_AVGPRICE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -60640,7 +61652,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_470stream_CDLKICKING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_480stream_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; @@ -60649,7 +61661,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_470stream_CDLKICKING(CYTHON_UNUSED PyO double *__pyx_v_close_data; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - int __pyx_v_outinteger; + double __pyx_v_outreal; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -60657,53 +61669,53 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_470stream_CDLKICKING(CYTHON_UNUSED PyO int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLKICKING", 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(5, 1901, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 590, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1903, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 592, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1905, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 594, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1907, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 596, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1909, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 598, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_v_outinteger = 0; + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - __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_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_mstate_global->__pyx_n_u_TA_CDLKICKING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1912, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 601, __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_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1913, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 602, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -60713,7 +61725,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_470stream_CDLKICKING(CYTHON_UNUSED PyO /* 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_AddTraceback("talib._ta_lib.stream_AVGPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_open); @@ -60727,37 +61739,38 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_470stream_CDLKICKING(CYTHON_UNUSED PyO /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_473stream_CDLKICKINGBYLENGTH(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_483stream_BBANDS(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_472stream_CDLKICKINGBYLENGTH, "stream_CDLKICKINGBYLENGTH(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLKICKINGBYLENGTH(open, high, low, close)\n\nKicking - bull/bear determined by the longer marubozu (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_473stream_CDLKICKINGBYLENGTH = {"stream_CDLKICKINGBYLENGTH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_473stream_CDLKICKINGBYLENGTH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_472stream_CDLKICKINGBYLENGTH}; -static PyObject *__pyx_pw_5talib_7_ta_lib_473stream_CDLKICKINGBYLENGTH(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_482stream_BBANDS, "stream_BBANDS(ndarray real, int timeperiod=-0x80000000, double nbdevup=-4e37, double nbdevdn=-4e37, int matype=0)\n\nBBANDS(real[, timeperiod=?, nbdevup=?, nbdevdn=?, matype=?])\n\nBollinger Bands (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 20\n nbdevup: 2.0\n nbdevdn: 2.0\n matype: 0 (Simple Moving Average)\nOutputs:\n upperband\n middleband\n lowerband"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_483stream_BBANDS = {"stream_BBANDS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_483stream_BBANDS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_482stream_BBANDS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_483stream_BBANDS(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + double __pyx_v_nbdevup; + double __pyx_v_nbdevdn; + int __pyx_v_matype; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLKICKINGBYLENGTH (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_BBANDS (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -60767,70 +61780,101 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdevup,&__pyx_mstate_global->__pyx_n_u_nbdevdn,&__pyx_mstate_global->__pyx_n_u_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1915, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 604, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 604, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1915, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 604, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1915, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 604, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1915, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 604, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1915, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 604, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLKICKINGBYLENGTH", 0) < (0)) __PYX_ERR(5, 1915, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLKICKINGBYLENGTH", 1, 4, 4, i); __PYX_ERR(5, 1915, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_BBANDS", 0) < (0)) __PYX_ERR(5, 604, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_BBANDS", 0, 1, 5, i); __PYX_ERR(5, 604, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1915, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1915, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1915, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1915, __pyx_L3_error) + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 604, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 604, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 604, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 604, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 604, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 606, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_nbdevup = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdevup == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 606, __pyx_L3_error) + } else { + __pyx_v_nbdevup = ((double)((double)-4e37)); + } + if (values[3]) { + __pyx_v_nbdevdn = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_nbdevdn == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 606, __pyx_L3_error) + } else { + __pyx_v_nbdevdn = ((double)((double)-4e37)); + } + if (values[4]) { + __pyx_v_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 606, __pyx_L3_error) + } else { + __pyx_v_matype = ((int)((int)0)); } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLKICKINGBYLENGTH", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1915, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_BBANDS", 0, 1, 5, __pyx_nargs); __PYX_ERR(5, 604, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLKICKINGBYLENGTH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1917, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1917, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1917, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1917, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_472stream_CDLKICKINGBYLENGTH(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 606, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_482stream_BBANDS(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype); /* function exit code */ goto __pyx_L0; @@ -60849,86 +61893,81 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_472stream_CDLKICKINGBYLENGTH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_482stream_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_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; + double *__pyx_v_real_data; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - int __pyx_v_outinteger; + double __pyx_v_outrealupperband; + double __pyx_v_outrealmiddleband; + double __pyx_v_outreallowerband; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + 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_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(5, 1937, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1939, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + __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_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1941, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 632, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1943, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + __pyx_v_outrealupperband = __pyx_v_5talib_7_ta_lib_NaN; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1945, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_outrealmiddleband = __pyx_v_5talib_7_ta_lib_NaN; - __pyx_v_outinteger = 0; + __pyx_v_outreallowerband = __pyx_v_5talib_7_ta_lib_NaN; - __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_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_mstate_global->__pyx_n_u_TA_CDLKICKINGBYLENGTH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1948, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BBANDS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 639, __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_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1949, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outrealupperband); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 640, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outrealmiddleband); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 640, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreallowerband); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 640, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 640, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 640, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2) != (0)) __PYX_ERR(5, 640, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3) != (0)) __PYX_ERR(5, 640, __pyx_L1_error); __pyx_t_1 = 0; + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; goto __pyx_L0; /* 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_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_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -60936,37 +61975,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_472stream_CDLKICKINGBYLENGTH(CYTHON_UN /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_475stream_CDLLADDERBOTTOM(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_485stream_BETA(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_474stream_CDLLADDERBOTTOM, "stream_CDLLADDERBOTTOM(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLLADDERBOTTOM(open, high, low, close)\n\nLadder Bottom (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_475stream_CDLLADDERBOTTOM = {"stream_CDLLADDERBOTTOM", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_475stream_CDLLADDERBOTTOM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_474stream_CDLLADDERBOTTOM}; -static PyObject *__pyx_pw_5talib_7_ta_lib_475stream_CDLLADDERBOTTOM(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_484stream_BETA, "stream_BETA(ndarray real0, ndarray real1, int timeperiod=-0x80000000)\n\nBETA(real0, real1[, timeperiod=?])\n\nBeta (Statistic Functions)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nParameters:\n timeperiod: 5\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_485stream_BETA = {"stream_BETA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_485stream_BETA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_484stream_BETA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_485stream_BETA(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + PyArrayObject *__pyx_v_real0 = 0; + PyArrayObject *__pyx_v_real1 = 0; + int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLLADDERBOTTOM (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_BETA (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -60976,70 +62014,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1951, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 642, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1951, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1951, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 642, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1951, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 642, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1951, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 642, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLLADDERBOTTOM", 0) < (0)) __PYX_ERR(5, 1951, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLLADDERBOTTOM", 1, 4, 4, i); __PYX_ERR(5, 1951, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_BETA", 0) < (0)) __PYX_ERR(5, 642, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_BETA", 0, 2, 3, i); __PYX_ERR(5, 642, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1951, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1951, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1951, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1951, __pyx_L3_error) + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 642, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 642, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 642, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real0 = ((PyArrayObject *)values[0]); + __pyx_v_real1 = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 644, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLLADDERBOTTOM", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1951, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_BETA", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 642, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLLADDERBOTTOM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1953, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1953, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1953, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1953, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_474stream_CDLLADDERBOTTOM(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(5, 644, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(5, 644, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_484stream_BETA(__pyx_self, __pyx_v_real0, __pyx_v_real1, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -61058,16 +62096,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_474stream_CDLLADDERBOTTOM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_484stream_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_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; + double *__pyx_v_real0_data; + double *__pyx_v_real1_data; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - int __pyx_v_outinteger; + double __pyx_v_outreal; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -61075,53 +62111,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_474stream_CDLLADDERBOTTOM(CYTHON_UNUSE 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(5, 1973, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1975, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + __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_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1977, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 665, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + __pyx_v_real0_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1979, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 667, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + __pyx_v_real1_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1981, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 669, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_v_outinteger = 0; + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - __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_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_mstate_global->__pyx_n_u_TA_CDLLADDERBOTTOM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1984, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BETA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 672, __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_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1985, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 673, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -61131,13 +62151,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_474stream_CDLLADDERBOTTOM(CYTHON_UNUSE /* 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_AddTraceback("talib._ta_lib.stream_BETA", __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_XDECREF((PyObject *)__pyx_v_real0); + __Pyx_XDECREF((PyObject *)__pyx_v_real1); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -61145,16 +62163,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_474stream_CDLLADDERBOTTOM(CYTHON_UNUSE /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_477stream_CDLLONGLEGGEDDOJI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_487stream_BOP(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_476stream_CDLLONGLEGGEDDOJI, "stream_CDLLONGLEGGEDDOJI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLLONGLEGGEDDOJI(open, high, low, close)\n\nLong Legged Doji (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_477stream_CDLLONGLEGGEDDOJI = {"stream_CDLLONGLEGGEDDOJI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_477stream_CDLLONGLEGGEDDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_476stream_CDLLONGLEGGEDDOJI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_477stream_CDLLONGLEGGEDDOJI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_486stream_BOP, "stream_BOP(ndarray open, ndarray high, ndarray low, ndarray close)\n\nBOP(open, high, low, close)\n\nBalance Of Power (Momentum Indicators)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_487stream_BOP = {"stream_BOP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_487stream_BOP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_486stream_BOP}; +static PyObject *__pyx_pw_5talib_7_ta_lib_487stream_BOP(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -61175,7 +62193,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLLONGLEGGEDDOJI (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_BOP (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -61187,44 +62205,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1987, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 675, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1987, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 675, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1987, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 675, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1987, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 675, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1987, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 675, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLLONGLEGGEDDOJI", 0) < (0)) __PYX_ERR(5, 1987, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_BOP", 0) < (0)) __PYX_ERR(5, 675, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLLONGLEGGEDDOJI", 1, 4, 4, i); __PYX_ERR(5, 1987, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_BOP", 1, 4, 4, i); __PYX_ERR(5, 675, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1987, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 675, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1987, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 675, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1987, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 675, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1987, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 675, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -61233,22 +62251,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLLONGLEGGEDDOJI", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1987, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_BOP", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 675, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLLONGLEGGEDDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1989, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1989, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1989, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1989, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_476stream_CDLLONGLEGGEDDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 677, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 677, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 677, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 677, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_486stream_BOP(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -61267,7 +62285,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_476stream_CDLLONGLEGGEDDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_486stream_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; @@ -61276,7 +62294,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_476stream_CDLLONGLEGGEDDOJI(CYTHON_UNU double *__pyx_v_close_data; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - int __pyx_v_outinteger; + double __pyx_v_outreal; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -61284,53 +62302,53 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_476stream_CDLLONGLEGGEDDOJI(CYTHON_UNU int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLLONGLEGGEDDOJI", 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(5, 2009, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 697, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2011, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 699, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2013, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 701, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2015, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 703, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2017, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 705, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_v_outinteger = 0; + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - __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_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_mstate_global->__pyx_n_u_TA_CDLLONGLEGGEDDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2020, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BOP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 708, __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_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2021, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 709, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -61340,7 +62358,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_476stream_CDLLONGLEGGEDDOJI(CYTHON_UNU /* 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_AddTraceback("talib._ta_lib.stream_BOP", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_open); @@ -61354,16 +62372,223 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_476stream_CDLLONGLEGGEDDOJI(CYTHON_UNU /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_479stream_CDLLONGLINE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_489stream_CCI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_478stream_CDLLONGLINE, "stream_CDLLONGLINE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLLONGLINE(open, high, low, close)\n\nLong Line Candle (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_479stream_CDLLONGLINE = {"stream_CDLLONGLINE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_479stream_CDLLONGLINE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_478stream_CDLLONGLINE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_479stream_CDLLONGLINE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_488stream_CCI, "stream_CCI(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nCCI(high, low, close[, timeperiod=?])\n\nCommodity Channel Index (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_489stream_CCI = {"stream_CCI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_489stream_CCI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_488stream_CCI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_489stream_CCI(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_CCI (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 711, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 711, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 711, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 711, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 711, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CCI", 0) < (0)) __PYX_ERR(5, 711, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CCI", 0, 3, 4, i); __PYX_ERR(5, 711, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 711, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 711, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 711, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 711, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 713, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_CCI", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 711, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 713, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 713, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 713, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_488stream_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; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_488stream_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(5, 734, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 736, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 738, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 740, __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_mstate_global->__pyx_n_u_TA_CCI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 743, __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(5, 744, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __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_491stream_CDL2CROWS(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_490stream_CDL2CROWS, "stream_CDL2CROWS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL2CROWS(open, high, low, close)\n\nTwo Crows (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_491stream_CDL2CROWS = {"stream_CDL2CROWS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_491stream_CDL2CROWS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_490stream_CDL2CROWS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_491stream_CDL2CROWS(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -61384,7 +62609,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLLONGLINE (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDL2CROWS (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -61396,44 +62621,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2023, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 746, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2023, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 746, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2023, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 746, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2023, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 746, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2023, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 746, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLLONGLINE", 0) < (0)) __PYX_ERR(5, 2023, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDL2CROWS", 0) < (0)) __PYX_ERR(5, 746, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLLONGLINE", 1, 4, 4, i); __PYX_ERR(5, 2023, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDL2CROWS", 1, 4, 4, i); __PYX_ERR(5, 746, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2023, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 746, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2023, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 746, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2023, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 746, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2023, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 746, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -61442,22 +62667,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLLONGLINE", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2023, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDL2CROWS", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 746, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLLONGLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2025, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2025, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2025, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2025, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_478stream_CDLLONGLINE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 748, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 748, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 748, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 748, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_490stream_CDL2CROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -61476,7 +62701,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_478stream_CDLLONGLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_490stream_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; @@ -61493,53 +62718,53 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_478stream_CDLLONGLINE(CYTHON_UNUSED Py int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLLONGLINE", 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(5, 2045, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 768, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2047, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 770, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2049, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 772, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2051, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 774, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2053, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 776, __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_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_mstate_global->__pyx_n_u_TA_CDLLONGLINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2056, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL2CROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 779, __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_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2057, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 780, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -61549,7 +62774,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_478stream_CDLLONGLINE(CYTHON_UNUSED Py /* 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_AddTraceback("talib._ta_lib.stream_CDL2CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_open); @@ -61563,16 +62788,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_478stream_CDLLONGLINE(CYTHON_UNUSED Py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_481stream_CDLMARUBOZU(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_493stream_CDL3BLACKCROWS(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_480stream_CDLMARUBOZU, "stream_CDLMARUBOZU(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLMARUBOZU(open, high, low, close)\n\nMarubozu (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_481stream_CDLMARUBOZU = {"stream_CDLMARUBOZU", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_481stream_CDLMARUBOZU, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_480stream_CDLMARUBOZU}; -static PyObject *__pyx_pw_5talib_7_ta_lib_481stream_CDLMARUBOZU(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_492stream_CDL3BLACKCROWS, "stream_CDL3BLACKCROWS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3BLACKCROWS(open, high, low, close)\n\nThree Black Crows (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_493stream_CDL3BLACKCROWS = {"stream_CDL3BLACKCROWS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_493stream_CDL3BLACKCROWS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_492stream_CDL3BLACKCROWS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_493stream_CDL3BLACKCROWS(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -61593,7 +62818,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLMARUBOZU (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDL3BLACKCROWS (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -61605,44 +62830,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2059, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 782, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2059, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 782, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2059, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 782, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2059, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 782, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2059, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 782, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLMARUBOZU", 0) < (0)) __PYX_ERR(5, 2059, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDL3BLACKCROWS", 0) < (0)) __PYX_ERR(5, 782, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLMARUBOZU", 1, 4, 4, i); __PYX_ERR(5, 2059, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDL3BLACKCROWS", 1, 4, 4, i); __PYX_ERR(5, 782, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2059, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 782, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2059, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 782, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2059, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 782, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2059, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 782, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -61651,22 +62876,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLMARUBOZU", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2059, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDL3BLACKCROWS", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 782, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLMARUBOZU", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2061, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2061, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2061, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2061, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_480stream_CDLMARUBOZU(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 784, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 784, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 784, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 784, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_492stream_CDL3BLACKCROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -61685,7 +62910,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_480stream_CDLMARUBOZU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_492stream_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; @@ -61702,53 +62927,53 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_480stream_CDLMARUBOZU(CYTHON_UNUSED Py int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLMARUBOZU", 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(5, 2081, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 804, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2083, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 806, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2085, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 808, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2087, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 810, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2089, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 812, __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_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_mstate_global->__pyx_n_u_TA_CDLMARUBOZU, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2092, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3BLACKCROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 815, __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_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2093, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 816, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -61758,7 +62983,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_480stream_CDLMARUBOZU(CYTHON_UNUSED Py /* 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_AddTraceback("talib._ta_lib.stream_CDL3BLACKCROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_open); @@ -61772,16 +62997,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_480stream_CDLMARUBOZU(CYTHON_UNUSED Py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_483stream_CDLMATCHINGLOW(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_495stream_CDL3INSIDE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_482stream_CDLMATCHINGLOW, "stream_CDLMATCHINGLOW(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLMATCHINGLOW(open, high, low, close)\n\nMatching Low (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_483stream_CDLMATCHINGLOW = {"stream_CDLMATCHINGLOW", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_483stream_CDLMATCHINGLOW, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_482stream_CDLMATCHINGLOW}; -static PyObject *__pyx_pw_5talib_7_ta_lib_483stream_CDLMATCHINGLOW(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_494stream_CDL3INSIDE, "stream_CDL3INSIDE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3INSIDE(open, high, low, close)\n\nThree Inside Up/Down (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_495stream_CDL3INSIDE = {"stream_CDL3INSIDE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_495stream_CDL3INSIDE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_494stream_CDL3INSIDE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_495stream_CDL3INSIDE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -61802,7 +63027,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLMATCHINGLOW (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDL3INSIDE (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -61814,44 +63039,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2095, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 818, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2095, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 818, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2095, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 818, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2095, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 818, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2095, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 818, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLMATCHINGLOW", 0) < (0)) __PYX_ERR(5, 2095, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDL3INSIDE", 0) < (0)) __PYX_ERR(5, 818, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLMATCHINGLOW", 1, 4, 4, i); __PYX_ERR(5, 2095, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDL3INSIDE", 1, 4, 4, i); __PYX_ERR(5, 818, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2095, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 818, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2095, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 818, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2095, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 818, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2095, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 818, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -61860,22 +63085,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLMATCHINGLOW", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2095, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDL3INSIDE", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 818, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLMATCHINGLOW", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2097, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2097, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2097, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2097, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_482stream_CDLMATCHINGLOW(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 820, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 820, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 820, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 820, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_494stream_CDL3INSIDE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -61894,7 +63119,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_482stream_CDLMATCHINGLOW(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_494stream_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; @@ -61911,53 +63136,53 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_482stream_CDLMATCHINGLOW(CYTHON_UNUSED int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLMATCHINGLOW", 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(5, 2117, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 840, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2119, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 842, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2121, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 844, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2123, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 846, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2125, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 848, __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_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_mstate_global->__pyx_n_u_TA_CDLMATCHINGLOW, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2128, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3INSIDE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 851, __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_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2129, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 852, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -61967,7 +63192,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_482stream_CDLMATCHINGLOW(CYTHON_UNUSED /* 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_AddTraceback("talib._ta_lib.stream_CDL3INSIDE", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_open); @@ -61981,16 +63206,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_482stream_CDLMATCHINGLOW(CYTHON_UNUSED /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_485stream_CDLMATHOLD(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_497stream_CDL3LINESTRIKE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_484stream_CDLMATHOLD, "stream_CDLMATHOLD(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.5)\n\nCDLMATHOLD(open, high, low, close[, penetration=?])\n\nMat Hold (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nParameters:\n penetration: 0.5\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_485stream_CDLMATHOLD = {"stream_CDLMATHOLD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_485stream_CDLMATHOLD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_484stream_CDLMATHOLD}; -static PyObject *__pyx_pw_5talib_7_ta_lib_485stream_CDLMATHOLD(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_496stream_CDL3LINESTRIKE, "stream_CDL3LINESTRIKE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3LINESTRIKE(open, high, low, close)\n\nThree-Line Strike (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_497stream_CDL3LINESTRIKE = {"stream_CDL3LINESTRIKE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_497stream_CDL3LINESTRIKE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_496stream_CDL3LINESTRIKE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_497stream_CDL3LINESTRIKE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -62001,18 +63226,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; - double __pyx_v_penetration; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLMATHOLD (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDL3LINESTRIKE (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -62022,86 +63246,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2131, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 854, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 2131, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2131, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 854, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2131, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 854, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2131, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 854, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2131, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 854, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLMATHOLD", 0) < (0)) __PYX_ERR(5, 2131, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDL3LINESTRIKE", 0) < (0)) __PYX_ERR(5, 854, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLMATHOLD", 0, 4, 5, i); __PYX_ERR(5, 2131, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDL3LINESTRIKE", 1, 4, 4, i); __PYX_ERR(5, 854, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 2131, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2131, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2131, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2131, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2131, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 854, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 854, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 854, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 854, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); __pyx_v_low = ((PyArrayObject *)values[2]); __pyx_v_close = ((PyArrayObject *)values[3]); - if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 2133, __pyx_L3_error) - } else { - __pyx_v_penetration = ((double)((double)0.5)); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLMATHOLD", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 2131, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDL3LINESTRIKE", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 854, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLMATHOLD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2133, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2133, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2133, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2133, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_484stream_CDLMATHOLD(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 856, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 856, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 856, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 856, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_496stream_CDL3LINESTRIKE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -62120,7 +63328,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_484stream_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) { +static PyObject *__pyx_pf_5talib_7_ta_lib_496stream_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; @@ -62137,53 +63345,53 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_484stream_CDLMATHOLD(CYTHON_UNUSED PyO int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLMATHOLD", 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(5, 2155, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 876, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2157, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 878, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2159, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 880, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2161, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 882, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2163, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 884, __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_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_mstate_global->__pyx_n_u_TA_CDLMATHOLD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2166, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3LINESTRIKE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 887, __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_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2167, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 888, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -62193,7 +63401,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_484stream_CDLMATHOLD(CYTHON_UNUSED PyO /* 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_AddTraceback("talib._ta_lib.stream_CDL3LINESTRIKE", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_open); @@ -62207,16 +63415,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_484stream_CDLMATHOLD(CYTHON_UNUSED PyO /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_487stream_CDLMORNINGDOJISTAR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_499stream_CDL3OUTSIDE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_486stream_CDLMORNINGDOJISTAR, "stream_CDLMORNINGDOJISTAR(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\n\nCDLMORNINGDOJISTAR(open, high, low, close[, penetration=?])\n\nMorning Doji Star (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_487stream_CDLMORNINGDOJISTAR = {"stream_CDLMORNINGDOJISTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_487stream_CDLMORNINGDOJISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_486stream_CDLMORNINGDOJISTAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_487stream_CDLMORNINGDOJISTAR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_498stream_CDL3OUTSIDE, "stream_CDL3OUTSIDE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3OUTSIDE(open, high, low, close)\n\nThree Outside Up/Down (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_499stream_CDL3OUTSIDE = {"stream_CDL3OUTSIDE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_499stream_CDL3OUTSIDE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_498stream_CDL3OUTSIDE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_499stream_CDL3OUTSIDE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -62227,18 +63435,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; - double __pyx_v_penetration; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLMORNINGDOJISTAR (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDL3OUTSIDE (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -62248,86 +63455,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2169, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 890, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 2169, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2169, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 890, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2169, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 890, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2169, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 890, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2169, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 890, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLMORNINGDOJISTAR", 0) < (0)) __PYX_ERR(5, 2169, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDL3OUTSIDE", 0) < (0)) __PYX_ERR(5, 890, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLMORNINGDOJISTAR", 0, 4, 5, i); __PYX_ERR(5, 2169, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDL3OUTSIDE", 1, 4, 4, i); __PYX_ERR(5, 890, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 2169, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2169, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2169, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2169, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2169, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 890, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 890, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 890, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 890, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); __pyx_v_low = ((PyArrayObject *)values[2]); __pyx_v_close = ((PyArrayObject *)values[3]); - if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 2171, __pyx_L3_error) - } else { - __pyx_v_penetration = ((double)((double)0.3)); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLMORNINGDOJISTAR", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 2169, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDL3OUTSIDE", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 890, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLMORNINGDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2171, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2171, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2171, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2171, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_486stream_CDLMORNINGDOJISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 892, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 892, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 892, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 892, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_498stream_CDL3OUTSIDE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -62346,7 +63537,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_486stream_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) { +static PyObject *__pyx_pf_5talib_7_ta_lib_498stream_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; @@ -62363,53 +63554,53 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_486stream_CDLMORNINGDOJISTAR(CYTHON_UN int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLMORNINGDOJISTAR", 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(5, 2193, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 912, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2195, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 914, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2197, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 916, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2199, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 918, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2201, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 920, __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_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_mstate_global->__pyx_n_u_TA_CDLMORNINGDOJISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2204, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3OUTSIDE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 923, __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_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2205, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 924, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -62419,7 +63610,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_486stream_CDLMORNINGDOJISTAR(CYTHON_UN /* 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_AddTraceback("talib._ta_lib.stream_CDL3OUTSIDE", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_open); @@ -62433,16 +63624,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_486stream_CDLMORNINGDOJISTAR(CYTHON_UN /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_489stream_CDLMORNINGSTAR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_501stream_CDL3STARSINSOUTH(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_488stream_CDLMORNINGSTAR, "stream_CDLMORNINGSTAR(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\n\nCDLMORNINGSTAR(open, high, low, close[, penetration=?])\n\nMorning Star (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_489stream_CDLMORNINGSTAR = {"stream_CDLMORNINGSTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_489stream_CDLMORNINGSTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_488stream_CDLMORNINGSTAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_489stream_CDLMORNINGSTAR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_500stream_CDL3STARSINSOUTH, "stream_CDL3STARSINSOUTH(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3STARSINSOUTH(open, high, low, close)\n\nThree Stars In The South (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_501stream_CDL3STARSINSOUTH = {"stream_CDL3STARSINSOUTH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_501stream_CDL3STARSINSOUTH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_500stream_CDL3STARSINSOUTH}; +static PyObject *__pyx_pw_5talib_7_ta_lib_501stream_CDL3STARSINSOUTH(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -62453,18 +63644,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; - double __pyx_v_penetration; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLMORNINGSTAR (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDL3STARSINSOUTH (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -62474,86 +63664,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2207, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 926, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 2207, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2207, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 926, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2207, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 926, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2207, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 926, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2207, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 926, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLMORNINGSTAR", 0) < (0)) __PYX_ERR(5, 2207, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDL3STARSINSOUTH", 0) < (0)) __PYX_ERR(5, 926, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLMORNINGSTAR", 0, 4, 5, i); __PYX_ERR(5, 2207, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDL3STARSINSOUTH", 1, 4, 4, i); __PYX_ERR(5, 926, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 2207, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2207, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2207, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2207, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2207, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 926, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 926, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 926, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 926, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); __pyx_v_low = ((PyArrayObject *)values[2]); __pyx_v_close = ((PyArrayObject *)values[3]); - if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 2209, __pyx_L3_error) - } else { - __pyx_v_penetration = ((double)((double)0.3)); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLMORNINGSTAR", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 2207, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDL3STARSINSOUTH", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 926, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLMORNINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2209, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2209, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2209, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2209, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_488stream_CDLMORNINGSTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 928, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 928, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 928, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 928, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_500stream_CDL3STARSINSOUTH(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -62572,7 +63746,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_488stream_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) { +static PyObject *__pyx_pf_5talib_7_ta_lib_500stream_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; @@ -62589,53 +63763,53 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_488stream_CDLMORNINGSTAR(CYTHON_UNUSED int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLMORNINGSTAR", 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(5, 2231, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 948, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2233, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 950, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2235, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 952, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2237, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 954, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2239, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 956, __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_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_mstate_global->__pyx_n_u_TA_CDLMORNINGSTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2242, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3STARSINSOUTH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 959, __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_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2243, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 960, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -62645,7 +63819,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_488stream_CDLMORNINGSTAR(CYTHON_UNUSED /* 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_AddTraceback("talib._ta_lib.stream_CDL3STARSINSOUTH", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_open); @@ -62659,16 +63833,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_488stream_CDLMORNINGSTAR(CYTHON_UNUSED /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_491stream_CDLONNECK(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_503stream_CDL3WHITESOLDIERS(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_490stream_CDLONNECK, "stream_CDLONNECK(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLONNECK(open, high, low, close)\n\nOn-Neck Pattern (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_491stream_CDLONNECK = {"stream_CDLONNECK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_491stream_CDLONNECK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_490stream_CDLONNECK}; -static PyObject *__pyx_pw_5talib_7_ta_lib_491stream_CDLONNECK(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_502stream_CDL3WHITESOLDIERS, "stream_CDL3WHITESOLDIERS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3WHITESOLDIERS(open, high, low, close)\n\nThree Advancing White Soldiers (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_503stream_CDL3WHITESOLDIERS = {"stream_CDL3WHITESOLDIERS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_503stream_CDL3WHITESOLDIERS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_502stream_CDL3WHITESOLDIERS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_503stream_CDL3WHITESOLDIERS(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -62689,7 +63863,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLONNECK (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDL3WHITESOLDIERS (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -62701,44 +63875,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2245, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 962, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2245, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 962, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2245, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 962, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2245, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 962, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2245, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 962, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLONNECK", 0) < (0)) __PYX_ERR(5, 2245, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDL3WHITESOLDIERS", 0) < (0)) __PYX_ERR(5, 962, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLONNECK", 1, 4, 4, i); __PYX_ERR(5, 2245, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDL3WHITESOLDIERS", 1, 4, 4, i); __PYX_ERR(5, 962, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2245, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 962, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2245, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 962, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2245, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 962, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2245, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 962, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -62747,22 +63921,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLONNECK", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2245, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDL3WHITESOLDIERS", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 962, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLONNECK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2247, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2247, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2247, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2247, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_490stream_CDLONNECK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 964, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 964, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 964, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 964, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_502stream_CDL3WHITESOLDIERS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -62781,7 +63955,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_490stream_CDLONNECK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_502stream_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; @@ -62798,53 +63972,53 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_490stream_CDLONNECK(CYTHON_UNUSED PyOb int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLONNECK", 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(5, 2267, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 984, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2269, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 986, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2271, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 988, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2273, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 990, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2275, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 992, __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_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_mstate_global->__pyx_n_u_TA_CDLONNECK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2278, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3WHITESOLDIERS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 995, __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_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2279, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 996, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -62854,7 +64028,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_490stream_CDLONNECK(CYTHON_UNUSED PyOb /* 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_AddTraceback("talib._ta_lib.stream_CDL3WHITESOLDIERS", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_open); @@ -62868,16 +64042,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_490stream_CDLONNECK(CYTHON_UNUSED PyOb /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_493stream_CDLPIERCING(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_505stream_CDLABANDONEDBABY(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_492stream_CDLPIERCING, "stream_CDLPIERCING(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLPIERCING(open, high, low, close)\n\nPiercing Pattern (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_493stream_CDLPIERCING = {"stream_CDLPIERCING", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_493stream_CDLPIERCING, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_492stream_CDLPIERCING}; -static PyObject *__pyx_pw_5talib_7_ta_lib_493stream_CDLPIERCING(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_504stream_CDLABANDONEDBABY, "stream_CDLABANDONEDBABY(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\n\nCDLABANDONEDBABY(open, high, low, close[, penetration=?])\n\nAbandoned Baby (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_505stream_CDLABANDONEDBABY = {"stream_CDLABANDONEDBABY", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_505stream_CDLABANDONEDBABY, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_504stream_CDLABANDONEDBABY}; +static PyObject *__pyx_pw_5talib_7_ta_lib_505stream_CDLABANDONEDBABY(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -62888,17 +64062,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; + double __pyx_v_penetration; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLPIERCING (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDLABANDONEDBABY (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -62908,70 +64083,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2281, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 998, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 998, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2281, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 998, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2281, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 998, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2281, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 998, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2281, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 998, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLPIERCING", 0) < (0)) __PYX_ERR(5, 2281, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLABANDONEDBABY", 0) < (0)) __PYX_ERR(5, 998, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLPIERCING", 1, 4, 4, i); __PYX_ERR(5, 2281, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLABANDONEDBABY", 0, 4, 5, i); __PYX_ERR(5, 998, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2281, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2281, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2281, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2281, __pyx_L3_error) + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 998, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 998, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 998, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 998, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 998, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); __pyx_v_low = ((PyArrayObject *)values[2]); __pyx_v_close = ((PyArrayObject *)values[3]); + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 1000, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)((double)0.3)); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLPIERCING", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2281, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDLABANDONEDBABY", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 998, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLPIERCING", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2283, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2283, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2283, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2283, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_492stream_CDLPIERCING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1000, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1000, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1000, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1000, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_504stream_CDLABANDONEDBABY(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); /* function exit code */ goto __pyx_L0; @@ -62990,7 +64181,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_492stream_CDLPIERCING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_504stream_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; @@ -63007,53 +64198,53 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_492stream_CDLPIERCING(CYTHON_UNUSED Py int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLPIERCING", 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(5, 2303, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1022, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2305, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1024, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2307, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1026, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2309, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1028, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2311, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1030, __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_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_mstate_global->__pyx_n_u_TA_CDLPIERCING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2314, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLABANDONEDBABY, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1033, __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_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2315, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1034, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -63063,7 +64254,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_492stream_CDLPIERCING(CYTHON_UNUSED Py /* 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_AddTraceback("talib._ta_lib.stream_CDLABANDONEDBABY", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_open); @@ -63077,16 +64268,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_492stream_CDLPIERCING(CYTHON_UNUSED Py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_495stream_CDLRICKSHAWMAN(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_507stream_CDLADVANCEBLOCK(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_494stream_CDLRICKSHAWMAN, "stream_CDLRICKSHAWMAN(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLRICKSHAWMAN(open, high, low, close)\n\nRickshaw Man (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_495stream_CDLRICKSHAWMAN = {"stream_CDLRICKSHAWMAN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_495stream_CDLRICKSHAWMAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_494stream_CDLRICKSHAWMAN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_495stream_CDLRICKSHAWMAN(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_506stream_CDLADVANCEBLOCK, "stream_CDLADVANCEBLOCK(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLADVANCEBLOCK(open, high, low, close)\n\nAdvance Block (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_507stream_CDLADVANCEBLOCK = {"stream_CDLADVANCEBLOCK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_507stream_CDLADVANCEBLOCK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_506stream_CDLADVANCEBLOCK}; +static PyObject *__pyx_pw_5talib_7_ta_lib_507stream_CDLADVANCEBLOCK(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -63107,7 +64298,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLRICKSHAWMAN (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDLADVANCEBLOCK (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -63119,44 +64310,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2317, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1036, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2317, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1036, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2317, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1036, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2317, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1036, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2317, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1036, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLRICKSHAWMAN", 0) < (0)) __PYX_ERR(5, 2317, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLADVANCEBLOCK", 0) < (0)) __PYX_ERR(5, 1036, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLRICKSHAWMAN", 1, 4, 4, i); __PYX_ERR(5, 2317, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLADVANCEBLOCK", 1, 4, 4, i); __PYX_ERR(5, 1036, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2317, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1036, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2317, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1036, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2317, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1036, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2317, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1036, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -63165,22 +64356,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLRICKSHAWMAN", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2317, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDLADVANCEBLOCK", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1036, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLRICKSHAWMAN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2319, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2319, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2319, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2319, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_494stream_CDLRICKSHAWMAN(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1038, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1038, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1038, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1038, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_506stream_CDLADVANCEBLOCK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -63199,7 +64390,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_494stream_CDLRICKSHAWMAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_506stream_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; @@ -63216,53 +64407,53 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_494stream_CDLRICKSHAWMAN(CYTHON_UNUSED int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLRICKSHAWMAN", 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(5, 2339, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1058, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2341, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1060, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2343, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1062, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2345, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1064, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2347, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1066, __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_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_mstate_global->__pyx_n_u_TA_CDLRICKSHAWMAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2350, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLADVANCEBLOCK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1069, __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_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2351, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1070, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -63272,7 +64463,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_494stream_CDLRICKSHAWMAN(CYTHON_UNUSED /* 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_AddTraceback("talib._ta_lib.stream_CDLADVANCEBLOCK", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_open); @@ -63286,16 +64477,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_494stream_CDLRICKSHAWMAN(CYTHON_UNUSED /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_497stream_CDLRISEFALL3METHODS(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_509stream_CDLBELTHOLD(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_496stream_CDLRISEFALL3METHODS, "stream_CDLRISEFALL3METHODS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLRISEFALL3METHODS(open, high, low, close)\n\nRising/Falling Three Methods (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_497stream_CDLRISEFALL3METHODS = {"stream_CDLRISEFALL3METHODS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_497stream_CDLRISEFALL3METHODS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_496stream_CDLRISEFALL3METHODS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_497stream_CDLRISEFALL3METHODS(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_508stream_CDLBELTHOLD, "stream_CDLBELTHOLD(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLBELTHOLD(open, high, low, close)\n\nBelt-hold (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_509stream_CDLBELTHOLD = {"stream_CDLBELTHOLD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_509stream_CDLBELTHOLD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_508stream_CDLBELTHOLD}; +static PyObject *__pyx_pw_5talib_7_ta_lib_509stream_CDLBELTHOLD(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -63316,7 +64507,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLRISEFALL3METHODS (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDLBELTHOLD (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -63328,44 +64519,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2353, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1072, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2353, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1072, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2353, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1072, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2353, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1072, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2353, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1072, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLRISEFALL3METHODS", 0) < (0)) __PYX_ERR(5, 2353, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLBELTHOLD", 0) < (0)) __PYX_ERR(5, 1072, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLRISEFALL3METHODS", 1, 4, 4, i); __PYX_ERR(5, 2353, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLBELTHOLD", 1, 4, 4, i); __PYX_ERR(5, 1072, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2353, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1072, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2353, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1072, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2353, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1072, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2353, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1072, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -63374,22 +64565,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLRISEFALL3METHODS", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2353, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDLBELTHOLD", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1072, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLRISEFALL3METHODS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2355, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2355, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2355, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2355, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_496stream_CDLRISEFALL3METHODS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1074, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1074, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1074, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1074, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_508stream_CDLBELTHOLD(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -63408,7 +64599,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_496stream_CDLRISEFALL3METHODS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_508stream_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; @@ -63425,53 +64616,53 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_496stream_CDLRISEFALL3METHODS(CYTHON_U int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLRISEFALL3METHODS", 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(5, 2375, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1094, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2377, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1096, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2379, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1098, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2381, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1100, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2383, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1102, __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_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_mstate_global->__pyx_n_u_TA_CDLRISEFALL3METHODS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2386, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBELTHOLD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1105, __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_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2387, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1106, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -63481,7 +64672,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_496stream_CDLRISEFALL3METHODS(CYTHON_U /* 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_AddTraceback("talib._ta_lib.stream_CDLBELTHOLD", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_open); @@ -63495,16 +64686,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_496stream_CDLRISEFALL3METHODS(CYTHON_U /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_499stream_CDLSEPARATINGLINES(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_511stream_CDLBREAKAWAY(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_498stream_CDLSEPARATINGLINES, "stream_CDLSEPARATINGLINES(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSEPARATINGLINES(open, high, low, close)\n\nSeparating Lines (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_499stream_CDLSEPARATINGLINES = {"stream_CDLSEPARATINGLINES", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_499stream_CDLSEPARATINGLINES, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_498stream_CDLSEPARATINGLINES}; -static PyObject *__pyx_pw_5talib_7_ta_lib_499stream_CDLSEPARATINGLINES(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_510stream_CDLBREAKAWAY, "stream_CDLBREAKAWAY(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLBREAKAWAY(open, high, low, close)\n\nBreakaway (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_511stream_CDLBREAKAWAY = {"stream_CDLBREAKAWAY", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_511stream_CDLBREAKAWAY, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_510stream_CDLBREAKAWAY}; +static PyObject *__pyx_pw_5talib_7_ta_lib_511stream_CDLBREAKAWAY(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -63525,7 +64716,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLSEPARATINGLINES (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDLBREAKAWAY (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -63537,44 +64728,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2389, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1108, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2389, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1108, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2389, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1108, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2389, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1108, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2389, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1108, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLSEPARATINGLINES", 0) < (0)) __PYX_ERR(5, 2389, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLBREAKAWAY", 0) < (0)) __PYX_ERR(5, 1108, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLSEPARATINGLINES", 1, 4, 4, i); __PYX_ERR(5, 2389, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLBREAKAWAY", 1, 4, 4, i); __PYX_ERR(5, 1108, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2389, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1108, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2389, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1108, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2389, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1108, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2389, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1108, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -63583,22 +64774,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLSEPARATINGLINES", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2389, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDLBREAKAWAY", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1108, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLSEPARATINGLINES", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2391, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2391, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2391, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2391, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_498stream_CDLSEPARATINGLINES(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1110, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1110, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1110, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1110, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_510stream_CDLBREAKAWAY(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -63617,7 +64808,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_498stream_CDLSEPARATINGLINES(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_510stream_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; @@ -63634,53 +64825,53 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_498stream_CDLSEPARATINGLINES(CYTHON_UN int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLSEPARATINGLINES", 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(5, 2411, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1130, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2413, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1132, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2415, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1134, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2417, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1136, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2419, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1138, __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_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_mstate_global->__pyx_n_u_TA_CDLSEPARATINGLINES, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2422, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBREAKAWAY, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1141, __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_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2423, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -63690,7 +64881,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_498stream_CDLSEPARATINGLINES(CYTHON_UN /* 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_AddTraceback("talib._ta_lib.stream_CDLBREAKAWAY", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_open); @@ -63704,16 +64895,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_498stream_CDLSEPARATINGLINES(CYTHON_UN /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_501stream_CDLSHOOTINGSTAR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_513stream_CDLCLOSINGMARUBOZU(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_500stream_CDLSHOOTINGSTAR, "stream_CDLSHOOTINGSTAR(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSHOOTINGSTAR(open, high, low, close)\n\nShooting Star (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_501stream_CDLSHOOTINGSTAR = {"stream_CDLSHOOTINGSTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_501stream_CDLSHOOTINGSTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_500stream_CDLSHOOTINGSTAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_501stream_CDLSHOOTINGSTAR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_512stream_CDLCLOSINGMARUBOZU, "stream_CDLCLOSINGMARUBOZU(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLCLOSINGMARUBOZU(open, high, low, close)\n\nClosing Marubozu (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_513stream_CDLCLOSINGMARUBOZU = {"stream_CDLCLOSINGMARUBOZU", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_513stream_CDLCLOSINGMARUBOZU, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_512stream_CDLCLOSINGMARUBOZU}; +static PyObject *__pyx_pw_5talib_7_ta_lib_513stream_CDLCLOSINGMARUBOZU(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -63734,7 +64925,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLSHOOTINGSTAR (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDLCLOSINGMARUBOZU (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -63746,44 +64937,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2425, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1144, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2425, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1144, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2425, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1144, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2425, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1144, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2425, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1144, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLSHOOTINGSTAR", 0) < (0)) __PYX_ERR(5, 2425, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLCLOSINGMARUBOZU", 0) < (0)) __PYX_ERR(5, 1144, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLSHOOTINGSTAR", 1, 4, 4, i); __PYX_ERR(5, 2425, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLCLOSINGMARUBOZU", 1, 4, 4, i); __PYX_ERR(5, 1144, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2425, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1144, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2425, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1144, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2425, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1144, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2425, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1144, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -63792,22 +64983,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLSHOOTINGSTAR", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2425, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDLCLOSINGMARUBOZU", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1144, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLSHOOTINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2427, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2427, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2427, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2427, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_500stream_CDLSHOOTINGSTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1146, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1146, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1146, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1146, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_512stream_CDLCLOSINGMARUBOZU(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -63826,7 +65017,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_500stream_CDLSHOOTINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_512stream_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; @@ -63843,53 +65034,53 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_500stream_CDLSHOOTINGSTAR(CYTHON_UNUSE int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLSHOOTINGSTAR", 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(5, 2447, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1166, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2449, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1168, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2451, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1170, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2453, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1172, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2455, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1174, __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_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_mstate_global->__pyx_n_u_TA_CDLSHOOTINGSTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2458, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCLOSINGMARUBOZU, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1177, __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_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2459, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1178, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -63899,7 +65090,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_500stream_CDLSHOOTINGSTAR(CYTHON_UNUSE /* 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_AddTraceback("talib._ta_lib.stream_CDLCLOSINGMARUBOZU", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_open); @@ -63913,16 +65104,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_500stream_CDLSHOOTINGSTAR(CYTHON_UNUSE /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_503stream_CDLSHORTLINE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_515stream_CDLCONCEALBABYSWALL(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_502stream_CDLSHORTLINE, "stream_CDLSHORTLINE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSHORTLINE(open, high, low, close)\n\nShort Line Candle (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_503stream_CDLSHORTLINE = {"stream_CDLSHORTLINE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_503stream_CDLSHORTLINE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_502stream_CDLSHORTLINE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_503stream_CDLSHORTLINE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_514stream_CDLCONCEALBABYSWALL, "stream_CDLCONCEALBABYSWALL(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLCONCEALBABYSWALL(open, high, low, close)\n\nConcealing Baby Swallow (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_515stream_CDLCONCEALBABYSWALL = {"stream_CDLCONCEALBABYSWALL", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_515stream_CDLCONCEALBABYSWALL, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_514stream_CDLCONCEALBABYSWALL}; +static PyObject *__pyx_pw_5talib_7_ta_lib_515stream_CDLCONCEALBABYSWALL(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -63943,7 +65134,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLSHORTLINE (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDLCONCEALBABYSWALL (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -63955,44 +65146,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2461, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1180, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2461, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1180, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2461, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1180, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2461, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1180, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2461, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1180, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLSHORTLINE", 0) < (0)) __PYX_ERR(5, 2461, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLCONCEALBABYSWALL", 0) < (0)) __PYX_ERR(5, 1180, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLSHORTLINE", 1, 4, 4, i); __PYX_ERR(5, 2461, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLCONCEALBABYSWALL", 1, 4, 4, i); __PYX_ERR(5, 1180, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2461, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1180, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2461, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1180, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2461, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1180, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2461, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1180, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -64001,22 +65192,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLSHORTLINE", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2461, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDLCONCEALBABYSWALL", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1180, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLSHORTLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2463, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2463, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2463, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2463, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_502stream_CDLSHORTLINE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1182, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1182, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1182, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1182, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_514stream_CDLCONCEALBABYSWALL(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -64035,7 +65226,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_502stream_CDLSHORTLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_514stream_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; @@ -64052,53 +65243,53 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_502stream_CDLSHORTLINE(CYTHON_UNUSED P int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLSHORTLINE", 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(5, 2483, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1202, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2485, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1204, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2487, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1206, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2489, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1208, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2491, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1210, __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_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_mstate_global->__pyx_n_u_TA_CDLSHORTLINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2494, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCONCEALBABYSWALL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1213, __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_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2495, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1214, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -64108,7 +65299,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_502stream_CDLSHORTLINE(CYTHON_UNUSED P /* 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_AddTraceback("talib._ta_lib.stream_CDLCONCEALBABYSWALL", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_open); @@ -64122,16 +65313,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_502stream_CDLSHORTLINE(CYTHON_UNUSED P /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_505stream_CDLSPINNINGTOP(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_517stream_CDLCOUNTERATTACK(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_504stream_CDLSPINNINGTOP, "stream_CDLSPINNINGTOP(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSPINNINGTOP(open, high, low, close)\n\nSpinning Top (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_505stream_CDLSPINNINGTOP = {"stream_CDLSPINNINGTOP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_505stream_CDLSPINNINGTOP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_504stream_CDLSPINNINGTOP}; -static PyObject *__pyx_pw_5talib_7_ta_lib_505stream_CDLSPINNINGTOP(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_516stream_CDLCOUNTERATTACK, "stream_CDLCOUNTERATTACK(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLCOUNTERATTACK(open, high, low, close)\n\nCounterattack (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_517stream_CDLCOUNTERATTACK = {"stream_CDLCOUNTERATTACK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_517stream_CDLCOUNTERATTACK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_516stream_CDLCOUNTERATTACK}; +static PyObject *__pyx_pw_5talib_7_ta_lib_517stream_CDLCOUNTERATTACK(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -64152,7 +65343,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLSPINNINGTOP (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDLCOUNTERATTACK (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -64164,44 +65355,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2497, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1216, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2497, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1216, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2497, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1216, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2497, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1216, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2497, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1216, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLSPINNINGTOP", 0) < (0)) __PYX_ERR(5, 2497, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLCOUNTERATTACK", 0) < (0)) __PYX_ERR(5, 1216, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLSPINNINGTOP", 1, 4, 4, i); __PYX_ERR(5, 2497, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLCOUNTERATTACK", 1, 4, 4, i); __PYX_ERR(5, 1216, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2497, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1216, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2497, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1216, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2497, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1216, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2497, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1216, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -64210,22 +65401,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLSPINNINGTOP", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2497, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDLCOUNTERATTACK", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1216, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLSPINNINGTOP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2499, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2499, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2499, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2499, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_504stream_CDLSPINNINGTOP(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1218, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1218, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1218, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1218, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_516stream_CDLCOUNTERATTACK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -64244,7 +65435,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_504stream_CDLSPINNINGTOP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_516stream_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; @@ -64261,53 +65452,53 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_504stream_CDLSPINNINGTOP(CYTHON_UNUSED int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLSPINNINGTOP", 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(5, 2519, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1238, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2521, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1240, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2523, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1242, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2525, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1244, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2527, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1246, __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_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_mstate_global->__pyx_n_u_TA_CDLSPINNINGTOP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2530, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCOUNTERATTACK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1249, __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_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2531, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1250, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -64317,7 +65508,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_504stream_CDLSPINNINGTOP(CYTHON_UNUSED /* 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_AddTraceback("talib._ta_lib.stream_CDLCOUNTERATTACK", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_open); @@ -64331,16 +65522,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_504stream_CDLSPINNINGTOP(CYTHON_UNUSED /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_507stream_CDLSTALLEDPATTERN(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_519stream_CDLDARKCLOUDCOVER(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_506stream_CDLSTALLEDPATTERN, "stream_CDLSTALLEDPATTERN(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSTALLEDPATTERN(open, high, low, close)\n\nStalled Pattern (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_507stream_CDLSTALLEDPATTERN = {"stream_CDLSTALLEDPATTERN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_507stream_CDLSTALLEDPATTERN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_506stream_CDLSTALLEDPATTERN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_507stream_CDLSTALLEDPATTERN(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_518stream_CDLDARKCLOUDCOVER, "stream_CDLDARKCLOUDCOVER(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.5)\n\nCDLDARKCLOUDCOVER(open, high, low, close[, penetration=?])\n\nDark Cloud Cover (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nParameters:\n penetration: 0.5\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_519stream_CDLDARKCLOUDCOVER = {"stream_CDLDARKCLOUDCOVER", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_519stream_CDLDARKCLOUDCOVER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_518stream_CDLDARKCLOUDCOVER}; +static PyObject *__pyx_pw_5talib_7_ta_lib_519stream_CDLDARKCLOUDCOVER(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -64351,17 +65542,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; + double __pyx_v_penetration; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLSTALLEDPATTERN (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDLDARKCLOUDCOVER (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -64371,70 +65563,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2533, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1252, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 1252, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2533, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1252, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2533, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1252, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2533, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1252, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2533, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1252, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLSTALLEDPATTERN", 0) < (0)) __PYX_ERR(5, 2533, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLDARKCLOUDCOVER", 0) < (0)) __PYX_ERR(5, 1252, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLSTALLEDPATTERN", 1, 4, 4, i); __PYX_ERR(5, 2533, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLDARKCLOUDCOVER", 0, 4, 5, i); __PYX_ERR(5, 1252, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2533, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2533, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2533, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2533, __pyx_L3_error) + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 1252, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1252, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1252, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1252, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1252, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); __pyx_v_low = ((PyArrayObject *)values[2]); __pyx_v_close = ((PyArrayObject *)values[3]); + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 1254, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)((double)0.5)); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLSTALLEDPATTERN", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2533, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDLDARKCLOUDCOVER", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 1252, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLSTALLEDPATTERN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2535, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2535, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2535, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2535, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_506stream_CDLSTALLEDPATTERN(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1254, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1254, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1254, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1254, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_518stream_CDLDARKCLOUDCOVER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); /* function exit code */ goto __pyx_L0; @@ -64453,7 +65661,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_506stream_CDLSTALLEDPATTERN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_518stream_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; @@ -64470,53 +65678,53 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_506stream_CDLSTALLEDPATTERN(CYTHON_UNU int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLSTALLEDPATTERN", 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(5, 2555, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1276, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2557, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1278, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2559, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1280, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2561, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1282, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2563, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1284, __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_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_mstate_global->__pyx_n_u_TA_CDLSTALLEDPATTERN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2566, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDARKCLOUDCOVER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1287, __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_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2567, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -64526,7 +65734,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_506stream_CDLSTALLEDPATTERN(CYTHON_UNU /* 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_AddTraceback("talib._ta_lib.stream_CDLDARKCLOUDCOVER", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_open); @@ -64540,16 +65748,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_506stream_CDLSTALLEDPATTERN(CYTHON_UNU /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_509stream_CDLSTICKSANDWICH(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_521stream_CDLDOJI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_508stream_CDLSTICKSANDWICH, "stream_CDLSTICKSANDWICH(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSTICKSANDWICH(open, high, low, close)\n\nStick Sandwich (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_509stream_CDLSTICKSANDWICH = {"stream_CDLSTICKSANDWICH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_509stream_CDLSTICKSANDWICH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_508stream_CDLSTICKSANDWICH}; -static PyObject *__pyx_pw_5talib_7_ta_lib_509stream_CDLSTICKSANDWICH(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_520stream_CDLDOJI, "stream_CDLDOJI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLDOJI(open, high, low, close)\n\nDoji (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_521stream_CDLDOJI = {"stream_CDLDOJI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_521stream_CDLDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_520stream_CDLDOJI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_521stream_CDLDOJI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -64570,7 +65778,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLSTICKSANDWICH (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDLDOJI (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -64582,44 +65790,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2569, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1290, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2569, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1290, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2569, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1290, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2569, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1290, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2569, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1290, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLSTICKSANDWICH", 0) < (0)) __PYX_ERR(5, 2569, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLDOJI", 0) < (0)) __PYX_ERR(5, 1290, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLSTICKSANDWICH", 1, 4, 4, i); __PYX_ERR(5, 2569, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLDOJI", 1, 4, 4, i); __PYX_ERR(5, 1290, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2569, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1290, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2569, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1290, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2569, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1290, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2569, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1290, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -64628,22 +65836,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLSTICKSANDWICH", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2569, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDLDOJI", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1290, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLSTICKSANDWICH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2571, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2571, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2571, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2571, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_508stream_CDLSTICKSANDWICH(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1292, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1292, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1292, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1292, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_520stream_CDLDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -64662,7 +65870,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_508stream_CDLSTICKSANDWICH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_520stream_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; @@ -64679,53 +65887,53 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_508stream_CDLSTICKSANDWICH(CYTHON_UNUS int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLSTICKSANDWICH", 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(5, 2591, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1312, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2593, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1314, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2595, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1316, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2597, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1318, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2599, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1320, __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_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_mstate_global->__pyx_n_u_TA_CDLSTICKSANDWICH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2602, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1323, __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_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2603, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1324, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -64735,7 +65943,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_508stream_CDLSTICKSANDWICH(CYTHON_UNUS /* 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_AddTraceback("talib._ta_lib.stream_CDLDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_open); @@ -64749,16 +65957,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_508stream_CDLSTICKSANDWICH(CYTHON_UNUS /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_511stream_CDLTAKURI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_523stream_CDLDOJISTAR(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_510stream_CDLTAKURI, "stream_CDLTAKURI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLTAKURI(open, high, low, close)\n\nTakuri (Dragonfly Doji with very long lower shadow) (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_511stream_CDLTAKURI = {"stream_CDLTAKURI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_511stream_CDLTAKURI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_510stream_CDLTAKURI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_511stream_CDLTAKURI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_522stream_CDLDOJISTAR, "stream_CDLDOJISTAR(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLDOJISTAR(open, high, low, close)\n\nDoji Star (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_523stream_CDLDOJISTAR = {"stream_CDLDOJISTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_523stream_CDLDOJISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_522stream_CDLDOJISTAR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_523stream_CDLDOJISTAR(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -64779,7 +65987,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLTAKURI (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDLDOJISTAR (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -64791,44 +65999,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2605, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1326, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2605, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1326, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2605, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1326, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2605, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1326, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2605, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1326, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLTAKURI", 0) < (0)) __PYX_ERR(5, 2605, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLDOJISTAR", 0) < (0)) __PYX_ERR(5, 1326, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLTAKURI", 1, 4, 4, i); __PYX_ERR(5, 2605, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLDOJISTAR", 1, 4, 4, i); __PYX_ERR(5, 1326, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2605, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1326, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2605, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1326, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2605, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1326, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2605, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1326, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -64837,22 +66045,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLTAKURI", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2605, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDLDOJISTAR", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1326, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLTAKURI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2607, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2607, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2607, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2607, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_510stream_CDLTAKURI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1328, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1328, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1328, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1328, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_522stream_CDLDOJISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -64871,7 +66079,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_510stream_CDLTAKURI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_522stream_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; @@ -64888,53 +66096,53 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_510stream_CDLTAKURI(CYTHON_UNUSED PyOb int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLTAKURI", 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(5, 2627, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1348, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2629, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1350, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2631, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1352, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2633, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1354, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2635, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1356, __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_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_mstate_global->__pyx_n_u_TA_CDLTAKURI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2638, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1359, __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_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2639, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1360, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -64944,7 +66152,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_510stream_CDLTAKURI(CYTHON_UNUSED PyOb /* 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_AddTraceback("talib._ta_lib.stream_CDLDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_open); @@ -64958,16 +66166,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_510stream_CDLTAKURI(CYTHON_UNUSED PyOb /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_513stream_CDLTASUKIGAP(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_525stream_CDLDRAGONFLYDOJI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_512stream_CDLTASUKIGAP, "stream_CDLTASUKIGAP(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLTASUKIGAP(open, high, low, close)\n\nTasuki Gap (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_513stream_CDLTASUKIGAP = {"stream_CDLTASUKIGAP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_513stream_CDLTASUKIGAP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_512stream_CDLTASUKIGAP}; -static PyObject *__pyx_pw_5talib_7_ta_lib_513stream_CDLTASUKIGAP(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_524stream_CDLDRAGONFLYDOJI, "stream_CDLDRAGONFLYDOJI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLDRAGONFLYDOJI(open, high, low, close)\n\nDragonfly Doji (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_525stream_CDLDRAGONFLYDOJI = {"stream_CDLDRAGONFLYDOJI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_525stream_CDLDRAGONFLYDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_524stream_CDLDRAGONFLYDOJI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_525stream_CDLDRAGONFLYDOJI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -64988,7 +66196,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLTASUKIGAP (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDLDRAGONFLYDOJI (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -65000,44 +66208,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2641, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1362, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2641, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1362, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2641, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1362, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2641, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1362, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2641, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1362, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLTASUKIGAP", 0) < (0)) __PYX_ERR(5, 2641, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLDRAGONFLYDOJI", 0) < (0)) __PYX_ERR(5, 1362, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLTASUKIGAP", 1, 4, 4, i); __PYX_ERR(5, 2641, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLDRAGONFLYDOJI", 1, 4, 4, i); __PYX_ERR(5, 1362, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2641, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1362, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2641, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1362, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2641, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1362, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2641, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1362, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -65046,22 +66254,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLTASUKIGAP", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2641, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDLDRAGONFLYDOJI", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1362, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLTASUKIGAP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2643, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2643, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2643, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2643, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_512stream_CDLTASUKIGAP(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1364, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1364, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1364, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1364, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_524stream_CDLDRAGONFLYDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -65080,7 +66288,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_512stream_CDLTASUKIGAP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_524stream_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; @@ -65097,53 +66305,53 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_512stream_CDLTASUKIGAP(CYTHON_UNUSED P int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLTASUKIGAP", 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(5, 2663, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1384, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2665, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1386, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2667, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1388, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2669, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1390, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2671, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1392, __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_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_mstate_global->__pyx_n_u_TA_CDLTASUKIGAP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2674, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDRAGONFLYDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1395, __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_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2675, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -65153,7 +66361,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_512stream_CDLTASUKIGAP(CYTHON_UNUSED P /* 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_AddTraceback("talib._ta_lib.stream_CDLDRAGONFLYDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_open); @@ -65167,16 +66375,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_512stream_CDLTASUKIGAP(CYTHON_UNUSED P /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_515stream_CDLTHRUSTING(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_527stream_CDLENGULFING(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_514stream_CDLTHRUSTING, "stream_CDLTHRUSTING(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLTHRUSTING(open, high, low, close)\n\nThrusting Pattern (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_515stream_CDLTHRUSTING = {"stream_CDLTHRUSTING", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_515stream_CDLTHRUSTING, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_514stream_CDLTHRUSTING}; -static PyObject *__pyx_pw_5talib_7_ta_lib_515stream_CDLTHRUSTING(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_526stream_CDLENGULFING, "stream_CDLENGULFING(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLENGULFING(open, high, low, close)\n\nEngulfing Pattern (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_527stream_CDLENGULFING = {"stream_CDLENGULFING", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_527stream_CDLENGULFING, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_526stream_CDLENGULFING}; +static PyObject *__pyx_pw_5talib_7_ta_lib_527stream_CDLENGULFING(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -65197,7 +66405,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLTHRUSTING (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDLENGULFING (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -65209,44 +66417,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2677, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1398, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2677, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1398, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2677, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1398, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2677, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1398, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2677, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1398, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLTHRUSTING", 0) < (0)) __PYX_ERR(5, 2677, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLENGULFING", 0) < (0)) __PYX_ERR(5, 1398, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLTHRUSTING", 1, 4, 4, i); __PYX_ERR(5, 2677, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLENGULFING", 1, 4, 4, i); __PYX_ERR(5, 1398, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2677, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1398, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2677, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1398, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2677, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1398, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2677, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1398, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -65255,22 +66463,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLTHRUSTING", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2677, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDLENGULFING", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1398, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLTHRUSTING", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2679, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2679, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2679, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2679, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_514stream_CDLTHRUSTING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1400, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1400, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1400, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1400, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_526stream_CDLENGULFING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -65289,7 +66497,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_514stream_CDLTHRUSTING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_526stream_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; @@ -65306,53 +66514,53 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_514stream_CDLTHRUSTING(CYTHON_UNUSED P int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLTHRUSTING", 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(5, 2699, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1420, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2701, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1422, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2703, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1424, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2705, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1426, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2707, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1428, __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_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_mstate_global->__pyx_n_u_TA_CDLTHRUSTING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2710, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLENGULFING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1431, __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_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2711, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1432, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -65362,7 +66570,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_514stream_CDLTHRUSTING(CYTHON_UNUSED P /* 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_AddTraceback("talib._ta_lib.stream_CDLENGULFING", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_open); @@ -65376,16 +66584,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_514stream_CDLTHRUSTING(CYTHON_UNUSED P /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_517stream_CDLTRISTAR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_529stream_CDLEVENINGDOJISTAR(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_516stream_CDLTRISTAR, "stream_CDLTRISTAR(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLTRISTAR(open, high, low, close)\n\nTristar Pattern (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_517stream_CDLTRISTAR = {"stream_CDLTRISTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_517stream_CDLTRISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_516stream_CDLTRISTAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_517stream_CDLTRISTAR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_528stream_CDLEVENINGDOJISTAR, "stream_CDLEVENINGDOJISTAR(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\n\nCDLEVENINGDOJISTAR(open, high, low, close[, penetration=?])\n\nEvening Doji Star (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_529stream_CDLEVENINGDOJISTAR = {"stream_CDLEVENINGDOJISTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_529stream_CDLEVENINGDOJISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_528stream_CDLEVENINGDOJISTAR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_529stream_CDLEVENINGDOJISTAR(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -65396,17 +66604,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; + double __pyx_v_penetration; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLTRISTAR (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDLEVENINGDOJISTAR (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -65416,279 +66625,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2713, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1434, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 1434, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2713, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1434, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2713, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1434, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2713, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1434, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2713, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1434, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLTRISTAR", 0) < (0)) __PYX_ERR(5, 2713, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLEVENINGDOJISTAR", 0) < (0)) __PYX_ERR(5, 1434, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLTRISTAR", 1, 4, 4, i); __PYX_ERR(5, 2713, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLEVENINGDOJISTAR", 0, 4, 5, i); __PYX_ERR(5, 1434, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2713, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2713, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2713, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2713, __pyx_L3_error) - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLTRISTAR", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2713, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLTRISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2715, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2715, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2715, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2715, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_516stream_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; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_516stream_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(5, 2735, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2737, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2739, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2741, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2743, __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_mstate_global->__pyx_n_u_TA_CDLTRISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2746, __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_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2747, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __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_519stream_CDLUNIQUE3RIVER(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_518stream_CDLUNIQUE3RIVER, "stream_CDLUNIQUE3RIVER(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLUNIQUE3RIVER(open, high, low, close)\n\nUnique 3 River (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_519stream_CDLUNIQUE3RIVER = {"stream_CDLUNIQUE3RIVER", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_519stream_CDLUNIQUE3RIVER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_518stream_CDLUNIQUE3RIVER}; -static PyObject *__pyx_pw_5talib_7_ta_lib_519stream_CDLUNIQUE3RIVER(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLUNIQUE3RIVER (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2749, __pyx_L3_error) - if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 1434, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2749, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1434, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2749, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1434, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2749, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1434, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2749, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1434, __pyx_L3_error) + break; default: goto __pyx_L5_argtuple_error; } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLUNIQUE3RIVER", 0) < (0)) __PYX_ERR(5, 2749, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLUNIQUE3RIVER", 1, 4, 4, i); __PYX_ERR(5, 2749, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2749, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2749, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2749, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2749, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); __pyx_v_low = ((PyArrayObject *)values[2]); __pyx_v_close = ((PyArrayObject *)values[3]); + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 1436, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)((double)0.3)); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLUNIQUE3RIVER", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2749, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDLEVENINGDOJISTAR", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 1434, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLUNIQUE3RIVER", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2751, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2751, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2751, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2751, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_518stream_CDLUNIQUE3RIVER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1436, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1436, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1436, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1436, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_528stream_CDLEVENINGDOJISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); /* function exit code */ goto __pyx_L0; @@ -65707,7 +66723,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_518stream_CDLUNIQUE3RIVER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_528stream_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; @@ -65724,53 +66740,53 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_518stream_CDLUNIQUE3RIVER(CYTHON_UNUSE int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLUNIQUE3RIVER", 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(5, 2771, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1458, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2773, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1460, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2775, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1462, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2777, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1464, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2779, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1466, __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_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_mstate_global->__pyx_n_u_TA_CDLUNIQUE3RIVER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2782, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGDOJISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1469, __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_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2783, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1470, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -65780,7 +66796,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_518stream_CDLUNIQUE3RIVER(CYTHON_UNUSE /* 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_AddTraceback("talib._ta_lib.stream_CDLEVENINGDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_open); @@ -65794,16 +66810,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_518stream_CDLUNIQUE3RIVER(CYTHON_UNUSE /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_521stream_CDLUPSIDEGAP2CROWS(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_531stream_CDLEVENINGSTAR(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_520stream_CDLUPSIDEGAP2CROWS, "stream_CDLUPSIDEGAP2CROWS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLUPSIDEGAP2CROWS(open, high, low, close)\n\nUpside Gap Two Crows (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_521stream_CDLUPSIDEGAP2CROWS = {"stream_CDLUPSIDEGAP2CROWS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_521stream_CDLUPSIDEGAP2CROWS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_520stream_CDLUPSIDEGAP2CROWS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_521stream_CDLUPSIDEGAP2CROWS(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_530stream_CDLEVENINGSTAR, "stream_CDLEVENINGSTAR(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\n\nCDLEVENINGSTAR(open, high, low, close[, penetration=?])\n\nEvening Star (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_531stream_CDLEVENINGSTAR = {"stream_CDLEVENINGSTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_531stream_CDLEVENINGSTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_530stream_CDLEVENINGSTAR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_531stream_CDLEVENINGSTAR(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -65814,17 +66830,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; + double __pyx_v_penetration; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLUPSIDEGAP2CROWS (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDLEVENINGSTAR (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -65834,70 +66851,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2785, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1472, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 1472, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2785, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1472, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2785, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1472, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2785, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1472, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2785, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1472, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLUPSIDEGAP2CROWS", 0) < (0)) __PYX_ERR(5, 2785, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLEVENINGSTAR", 0) < (0)) __PYX_ERR(5, 1472, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLUPSIDEGAP2CROWS", 1, 4, 4, i); __PYX_ERR(5, 2785, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLEVENINGSTAR", 0, 4, 5, i); __PYX_ERR(5, 1472, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2785, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2785, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2785, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2785, __pyx_L3_error) + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 1472, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1472, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1472, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1472, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1472, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); __pyx_v_low = ((PyArrayObject *)values[2]); __pyx_v_close = ((PyArrayObject *)values[3]); + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 1474, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)((double)0.3)); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLUPSIDEGAP2CROWS", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2785, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDLEVENINGSTAR", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 1472, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLUPSIDEGAP2CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2787, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2787, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2787, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2787, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_520stream_CDLUPSIDEGAP2CROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1474, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1474, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1474, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1474, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_530stream_CDLEVENINGSTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); /* function exit code */ goto __pyx_L0; @@ -65916,7 +66949,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_520stream_CDLUPSIDEGAP2CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_530stream_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; @@ -65933,53 +66966,53 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_520stream_CDLUPSIDEGAP2CROWS(CYTHON_UN int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLUPSIDEGAP2CROWS", 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(5, 2807, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1496, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2809, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1498, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2811, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1500, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2813, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1502, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2815, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1504, __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_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_mstate_global->__pyx_n_u_TA_CDLUPSIDEGAP2CROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2818, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGSTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1507, __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_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2819, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1508, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -65989,7 +67022,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_520stream_CDLUPSIDEGAP2CROWS(CYTHON_UN /* 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_AddTraceback("talib._ta_lib.stream_CDLEVENINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_open); @@ -66003,16 +67036,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_520stream_CDLUPSIDEGAP2CROWS(CYTHON_UN /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_523stream_CDLXSIDEGAP3METHODS(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_533stream_CDLGAPSIDESIDEWHITE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_522stream_CDLXSIDEGAP3METHODS, "stream_CDLXSIDEGAP3METHODS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLXSIDEGAP3METHODS(open, high, low, close)\n\nUpside/Downside Gap Three Methods (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_523stream_CDLXSIDEGAP3METHODS = {"stream_CDLXSIDEGAP3METHODS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_523stream_CDLXSIDEGAP3METHODS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_522stream_CDLXSIDEGAP3METHODS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_523stream_CDLXSIDEGAP3METHODS(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_532stream_CDLGAPSIDESIDEWHITE, "stream_CDLGAPSIDESIDEWHITE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLGAPSIDESIDEWHITE(open, high, low, close)\n\nUp/Down-gap side-by-side white lines (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_533stream_CDLGAPSIDESIDEWHITE = {"stream_CDLGAPSIDESIDEWHITE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_533stream_CDLGAPSIDESIDEWHITE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_532stream_CDLGAPSIDESIDEWHITE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_533stream_CDLGAPSIDESIDEWHITE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -66033,7 +67066,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLXSIDEGAP3METHODS (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDLGAPSIDESIDEWHITE (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -66045,44 +67078,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2821, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1510, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2821, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1510, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2821, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1510, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2821, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1510, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2821, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1510, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLXSIDEGAP3METHODS", 0) < (0)) __PYX_ERR(5, 2821, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLGAPSIDESIDEWHITE", 0) < (0)) __PYX_ERR(5, 1510, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLXSIDEGAP3METHODS", 1, 4, 4, i); __PYX_ERR(5, 2821, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLGAPSIDESIDEWHITE", 1, 4, 4, i); __PYX_ERR(5, 1510, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2821, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1510, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2821, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1510, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2821, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1510, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2821, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1510, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -66091,22 +67124,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLXSIDEGAP3METHODS", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2821, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDLGAPSIDESIDEWHITE", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1510, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLXSIDEGAP3METHODS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2823, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2823, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2823, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2823, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_522stream_CDLXSIDEGAP3METHODS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1512, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1512, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1512, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1512, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_532stream_CDLGAPSIDESIDEWHITE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -66125,7 +67158,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_522stream_CDLXSIDEGAP3METHODS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_532stream_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; @@ -66142,53 +67175,53 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_522stream_CDLXSIDEGAP3METHODS(CYTHON_U int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLXSIDEGAP3METHODS", 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(5, 2843, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1532, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2845, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1534, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2847, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1536, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2849, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1538, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2851, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1540, __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_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_mstate_global->__pyx_n_u_TA_CDLXSIDEGAP3METHODS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2854, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGAPSIDESIDEWHITE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1543, __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_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2855, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1544, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -66198,7 +67231,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_522stream_CDLXSIDEGAP3METHODS(CYTHON_U /* 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_AddTraceback("talib._ta_lib.stream_CDLGAPSIDESIDEWHITE", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_open); @@ -66212,34 +67245,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_522stream_CDLXSIDEGAP3METHODS(CYTHON_U /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_525stream_CEIL(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_535stream_CDLGRAVESTONEDOJI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_524stream_CEIL, "stream_CEIL(ndarray real)\n\nCEIL(real)\n\nVector Ceil (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_525stream_CEIL = {"stream_CEIL", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_525stream_CEIL, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_524stream_CEIL}; -static PyObject *__pyx_pw_5talib_7_ta_lib_525stream_CEIL(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_534stream_CDLGRAVESTONEDOJI, "stream_CDLGRAVESTONEDOJI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLGRAVESTONEDOJI(open, high, low, close)\n\nGravestone Doji (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_535stream_CDLGRAVESTONEDOJI = {"stream_CDLGRAVESTONEDOJI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_535stream_CDLGRAVESTONEDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_534stream_CDLGRAVESTONEDOJI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_535stream_CDLGRAVESTONEDOJI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CEIL (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDLGRAVESTONEDOJI (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -66249,46 +67285,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2857, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1546, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1546, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1546, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1546, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2857, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1546, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CEIL", 0) < (0)) __PYX_ERR(5, 2857, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CEIL", 1, 1, 1, i); __PYX_ERR(5, 2857, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLGRAVESTONEDOJI", 0) < (0)) __PYX_ERR(5, 1546, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLGRAVESTONEDOJI", 1, 4, 4, i); __PYX_ERR(5, 1546, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2857, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1546, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1546, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1546, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1546, __pyx_L3_error) } - __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CEIL", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 2857, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDLGRAVESTONEDOJI", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1546, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CEIL", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 2859, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_524stream_CEIL(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1548, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1548, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1548, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1548, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_534stream_CDLGRAVESTONEDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -66307,41 +67367,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_524stream_CEIL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_534stream_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_real_data; + 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; + 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_CEIL", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __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_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2876, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1568, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1570, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __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 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1572, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1574, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CEIL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2881, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1576, __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_mstate_global->__pyx_n_u_TA_CDLGRAVESTONEDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1579, __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(5, 2882, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1580, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -66351,10 +67440,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_524stream_CEIL(CYTHON_UNUSED PyObject /* 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_AddTraceback("talib._ta_lib.stream_CDLGRAVESTONEDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -66362,35 +67454,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_524stream_CEIL(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_527stream_CMO(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_537stream_CDLHAMMER(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_526stream_CMO, "stream_CMO(ndarray real, int timeperiod=-0x80000000)\n\nCMO(real[, timeperiod=?])\n\nChande Momentum Oscillator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_527stream_CMO = {"stream_CMO", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_527stream_CMO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_526stream_CMO}; -static PyObject *__pyx_pw_5talib_7_ta_lib_527stream_CMO(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_536stream_CDLHAMMER, "stream_CDLHAMMER(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHAMMER(open, high, low, close)\n\nHammer (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_537stream_CDLHAMMER = {"stream_CDLHAMMER", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_537stream_CDLHAMMER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_536stream_CDLHAMMER}; +static PyObject *__pyx_pw_5talib_7_ta_lib_537stream_CDLHAMMER(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CMO (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDLHAMMER (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -66400,62 +67494,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2884, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1582, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1582, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1582, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2884, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1582, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2884, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1582, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CMO", 0) < (0)) __PYX_ERR(5, 2884, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CMO", 0, 1, 2, i); __PYX_ERR(5, 2884, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2884, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2884, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLHAMMER", 0) < (0)) __PYX_ERR(5, 1582, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLHAMMER", 1, 4, 4, i); __PYX_ERR(5, 1582, __pyx_L3_error) } } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2886, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1582, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1582, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1582, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1582, __pyx_L3_error) } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CMO", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 2884, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDLHAMMER", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1582, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CMO", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 2886, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_526stream_CMO(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1584, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1584, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1584, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1584, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_536stream_CDLHAMMER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -66474,41 +67576,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_526stream_CMO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_536stream_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_real_data; + 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; + 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_CMO", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __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_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2905, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1604, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1606, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __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 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1608, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2910, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1610, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1612, __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_mstate_global->__pyx_n_u_TA_CDLHAMMER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1615, __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(5, 2911, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1616, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -66518,10 +67649,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_526stream_CMO(CYTHON_UNUSED PyObject * /* 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_AddTraceback("talib._ta_lib.stream_CDLHAMMER", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -66529,36 +67663,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_526stream_CMO(CYTHON_UNUSED PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_529stream_CORREL(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_539stream_CDLHANGINGMAN(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_528stream_CORREL, "stream_CORREL(ndarray real0, ndarray real1, int timeperiod=-0x80000000)\n\nCORREL(real0, real1[, timeperiod=?])\n\nPearson's Correlation Coefficient (r) (Statistic Functions)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_529stream_CORREL = {"stream_CORREL", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_529stream_CORREL, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_528stream_CORREL}; -static PyObject *__pyx_pw_5talib_7_ta_lib_529stream_CORREL(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_538stream_CDLHANGINGMAN, "stream_CDLHANGINGMAN(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHANGINGMAN(open, high, low, close)\n\nHanging Man (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_539stream_CDLHANGINGMAN = {"stream_CDLHANGINGMAN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_539stream_CDLHANGINGMAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_538stream_CDLHANGINGMAN}; +static PyObject *__pyx_pw_5talib_7_ta_lib_539stream_CDLHANGINGMAN(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real0 = 0; - PyArrayObject *__pyx_v_real1 = 0; - int __pyx_v_timeperiod; + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CORREL (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDLHANGINGMAN (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -66568,70 +67703,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2913, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1618, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1618, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2913, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1618, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2913, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1618, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2913, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1618, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CORREL", 0) < (0)) __PYX_ERR(5, 2913, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CORREL", 0, 2, 3, i); __PYX_ERR(5, 2913, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2913, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2913, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2913, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLHANGINGMAN", 0) < (0)) __PYX_ERR(5, 1618, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLHANGINGMAN", 1, 4, 4, i); __PYX_ERR(5, 1618, __pyx_L3_error) } } - } - __pyx_v_real0 = ((PyArrayObject *)values[0]); - __pyx_v_real1 = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2915, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1618, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1618, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1618, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1618, __pyx_L3_error) } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CORREL", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 2913, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDLHANGINGMAN", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1618, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CORREL", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(5, 2915, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(5, 2915, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_528stream_CORREL(__pyx_self, __pyx_v_real0, __pyx_v_real1, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1620, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1620, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1620, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1620, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_538stream_CDLHANGINGMAN(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -66650,14 +67785,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_528stream_CORREL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_538stream_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_real0_data; - double *__pyx_v_real1_data; + 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; + int __pyx_v_outinteger; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -66665,37 +67802,53 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_528stream_CORREL(CYTHON_UNUSED PyObjec 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_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_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2936, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1640, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_real0_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0)); + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2938, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1642, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_real1_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1)); + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1644, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1646, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2940, __pyx_L1_error) + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1648, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_outinteger = 0; - __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_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_mstate_global->__pyx_n_u_TA_CORREL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2943, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHANGINGMAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1651, __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(5, 2944, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1652, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -66705,11 +67858,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_528stream_CORREL(CYTHON_UNUSED PyObjec /* 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_AddTraceback("talib._ta_lib.stream_CDLHANGINGMAN", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real0); - __Pyx_XDECREF((PyObject *)__pyx_v_real1); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -66717,34 +67872,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_528stream_CORREL(CYTHON_UNUSED PyObjec /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_531stream_COS(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_541stream_CDLHARAMI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_530stream_COS, "stream_COS(ndarray real)\n\nCOS(real)\n\nVector Trigonometric Cos (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_531stream_COS = {"stream_COS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_531stream_COS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_530stream_COS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_531stream_COS(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_540stream_CDLHARAMI, "stream_CDLHARAMI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHARAMI(open, high, low, close)\n\nHarami Pattern (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_541stream_CDLHARAMI = {"stream_CDLHARAMI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_541stream_CDLHARAMI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_540stream_CDLHARAMI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_541stream_CDLHARAMI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_COS (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDLHARAMI (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -66754,46 +67912,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2946, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1654, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1654, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1654, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1654, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2946, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1654, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_COS", 0) < (0)) __PYX_ERR(5, 2946, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_COS", 1, 1, 1, i); __PYX_ERR(5, 2946, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLHARAMI", 0) < (0)) __PYX_ERR(5, 1654, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLHARAMI", 1, 4, 4, i); __PYX_ERR(5, 1654, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2946, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1654, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1654, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1654, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1654, __pyx_L3_error) } - __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_COS", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 2946, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDLHARAMI", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1654, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_COS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 2948, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_530stream_COS(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1656, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1656, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1656, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1656, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_540stream_CDLHARAMI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -66812,41 +67994,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_530stream_COS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_540stream_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_real_data; + 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; + 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_COS", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __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_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2965, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1676, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1678, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __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 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1680, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1682, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1684, __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_mstate_global->__pyx_n_u_TA_COS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2970, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1687, __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(5, 2971, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1688, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -66856,10 +68067,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_530stream_COS(CYTHON_UNUSED PyObject * /* 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_AddTraceback("talib._ta_lib.stream_CDLHARAMI", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -66867,34 +68081,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_530stream_COS(CYTHON_UNUSED PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_533stream_COSH(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_543stream_CDLHARAMICROSS(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_532stream_COSH, "stream_COSH(ndarray real)\n\nCOSH(real)\n\nVector Trigonometric Cosh (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_533stream_COSH = {"stream_COSH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_533stream_COSH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_532stream_COSH}; -static PyObject *__pyx_pw_5talib_7_ta_lib_533stream_COSH(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_542stream_CDLHARAMICROSS, "stream_CDLHARAMICROSS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHARAMICROSS(open, high, low, close)\n\nHarami Cross Pattern (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_543stream_CDLHARAMICROSS = {"stream_CDLHARAMICROSS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_543stream_CDLHARAMICROSS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_542stream_CDLHARAMICROSS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_543stream_CDLHARAMICROSS(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_COSH (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDLHARAMICROSS (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -66904,46 +68121,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2973, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1690, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1690, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1690, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1690, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2973, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1690, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_COSH", 0) < (0)) __PYX_ERR(5, 2973, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_COSH", 1, 1, 1, i); __PYX_ERR(5, 2973, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLHARAMICROSS", 0) < (0)) __PYX_ERR(5, 1690, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLHARAMICROSS", 1, 4, 4, i); __PYX_ERR(5, 1690, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2973, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1690, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1690, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1690, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1690, __pyx_L3_error) } - __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_COSH", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 2973, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDLHARAMICROSS", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1690, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_COSH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 2975, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_532stream_COSH(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1692, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1692, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1692, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1692, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_542stream_CDLHARAMICROSS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -66962,41 +68203,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_532stream_COSH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_542stream_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_real_data; + 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; + 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_COSH", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __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_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2992, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1712, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1714, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __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 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1716, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1718, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1720, __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_mstate_global->__pyx_n_u_TA_COSH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2997, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMICROSS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1723, __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(5, 2998, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1724, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -67006,10 +68276,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_532stream_COSH(CYTHON_UNUSED PyObject /* 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_AddTraceback("talib._ta_lib.stream_CDLHARAMICROSS", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -67017,35 +68290,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_532stream_COSH(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_535stream_DEMA(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_545stream_CDLHIGHWAVE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_534stream_DEMA, "stream_DEMA(ndarray real, int timeperiod=-0x80000000)\n\nDEMA(real[, timeperiod=?])\n\nDouble Exponential Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_535stream_DEMA = {"stream_DEMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_535stream_DEMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_534stream_DEMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_535stream_DEMA(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_544stream_CDLHIGHWAVE, "stream_CDLHIGHWAVE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHIGHWAVE(open, high, low, close)\n\nHigh-Wave Candle (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_545stream_CDLHIGHWAVE = {"stream_CDLHIGHWAVE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_545stream_CDLHIGHWAVE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_544stream_CDLHIGHWAVE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_545stream_CDLHIGHWAVE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_DEMA (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDLHIGHWAVE (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -67055,62 +68330,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3000, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1726, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1726, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1726, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3000, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1726, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3000, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1726, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_DEMA", 0) < (0)) __PYX_ERR(5, 3000, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_DEMA", 0, 1, 2, i); __PYX_ERR(5, 3000, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3000, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3000, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLHIGHWAVE", 0) < (0)) __PYX_ERR(5, 1726, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLHIGHWAVE", 1, 4, 4, i); __PYX_ERR(5, 1726, __pyx_L3_error) } } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3002, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1726, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1726, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1726, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1726, __pyx_L3_error) } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_DEMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3000, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDLHIGHWAVE", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1726, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_DEMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3002, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_534stream_DEMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1728, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1728, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1728, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1728, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_544stream_CDLHIGHWAVE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -67129,41 +68412,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_534stream_DEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_544stream_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_real_data; + 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; + 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_DEMA", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __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_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3021, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1748, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1750, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __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 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1752, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1754, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1756, __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_mstate_global->__pyx_n_u_TA_DEMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3026, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIGHWAVE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1759, __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(5, 3027, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1760, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -67173,10 +68485,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_534stream_DEMA(CYTHON_UNUSED PyObject /* 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_AddTraceback("talib._ta_lib.stream_CDLHIGHWAVE", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -67184,35 +68499,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_534stream_DEMA(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_537stream_DIV(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_547stream_CDLHIKKAKE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_536stream_DIV, "stream_DIV(ndarray real0, ndarray real1)\n\nDIV(real0, real1)\n\nVector Arithmetic Div (Math Operators)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_537stream_DIV = {"stream_DIV", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_537stream_DIV, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_536stream_DIV}; -static PyObject *__pyx_pw_5talib_7_ta_lib_537stream_DIV(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_546stream_CDLHIKKAKE, "stream_CDLHIKKAKE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHIKKAKE(open, high, low, close)\n\nHikkake Pattern (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_547stream_CDLHIKKAKE = {"stream_CDLHIKKAKE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_547stream_CDLHIKKAKE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_546stream_CDLHIKKAKE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_547stream_CDLHIKKAKE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real0 = 0; - PyArrayObject *__pyx_v_real1 = 0; + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_DIV (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDLHIKKAKE (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -67222,54 +68539,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3029, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1762, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1762, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1762, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3029, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1762, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3029, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1762, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_DIV", 0) < (0)) __PYX_ERR(5, 3029, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_DIV", 1, 2, 2, i); __PYX_ERR(5, 3029, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLHIKKAKE", 0) < (0)) __PYX_ERR(5, 1762, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLHIKKAKE", 1, 4, 4, i); __PYX_ERR(5, 1762, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3029, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1762, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3029, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1762, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1762, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1762, __pyx_L3_error) } - __pyx_v_real0 = ((PyArrayObject *)values[0]); - __pyx_v_real1 = ((PyArrayObject *)values[1]); + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_DIV", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 3029, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDLHIKKAKE", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1762, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_DIV", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(5, 3031, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(5, 3031, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_536stream_DIV(__pyx_self, __pyx_v_real0, __pyx_v_real1); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1764, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1764, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1764, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1764, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_546stream_CDLHIKKAKE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -67288,14 +68621,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_536stream_DIV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1) { +static PyObject *__pyx_pf_5talib_7_ta_lib_546stream_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_real0_data; - double *__pyx_v_real1_data; + 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; + int __pyx_v_outinteger; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -67303,37 +68638,53 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_536stream_DIV(CYTHON_UNUSED PyObject * 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_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_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3050, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1784, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_real0_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0)); + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3052, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1786, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_real1_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1)); + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1788, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1790, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3054, __pyx_L1_error) + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1792, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_outinteger = 0; - __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_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_mstate_global->__pyx_n_u_TA_DIV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3057, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1795, __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(5, 3058, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1796, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -67343,11 +68694,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_536stream_DIV(CYTHON_UNUSED PyObject * /* 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_AddTraceback("talib._ta_lib.stream_CDLHIKKAKE", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real0); - __Pyx_XDECREF((PyObject *)__pyx_v_real1); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -67355,26 +68708,26 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_536stream_DIV(CYTHON_UNUSED PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_539stream_DX(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_549stream_CDLHIKKAKEMOD(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_538stream_DX, "stream_DX(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nDX(high, low, close[, timeperiod=?])\n\nDirectional Movement Index (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_539stream_DX = {"stream_DX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_539stream_DX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_538stream_DX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_539stream_DX(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_548stream_CDLHIKKAKEMOD, "stream_CDLHIKKAKEMOD(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHIKKAKEMOD(open, high, low, close)\n\nModified Hikkake Pattern (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_549stream_CDLHIKKAKEMOD = {"stream_CDLHIKKAKEMOD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_549stream_CDLHIKKAKEMOD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_548stream_CDLHIKKAKEMOD}; +static PyObject *__pyx_pw_5talib_7_ta_lib_549stream_CDLHIKKAKEMOD(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { + PyArrayObject *__pyx_v_open = 0; PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -67385,7 +68738,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_DX (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDLHIKKAKEMOD (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -67395,78 +68748,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3060, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1798, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3060, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1798, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3060, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1798, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3060, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1798, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3060, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1798, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_DX", 0) < (0)) __PYX_ERR(5, 3060, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_DX", 0, 3, 4, i); __PYX_ERR(5, 3060, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3060, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3060, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3060, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3060, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLHIKKAKEMOD", 0) < (0)) __PYX_ERR(5, 1798, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLHIKKAKEMOD", 1, 4, 4, i); __PYX_ERR(5, 1798, __pyx_L3_error) } } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3062, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1798, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1798, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1798, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1798, __pyx_L3_error) } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_DX", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 3060, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDLHIKKAKEMOD", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1798, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_DX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 3062, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 3062, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 3062, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_538stream_DX(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1800, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1800, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1800, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1800, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_548stream_CDLHIKKAKEMOD(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -67485,15 +68830,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_538stream_DX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_548stream_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; - double __pyx_v_outreal; + int __pyx_v_outinteger; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -67501,45 +68847,53 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_538stream_DX(CYTHON_UNUSED PyObject *_ int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_DX", 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_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3083, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1820, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1822, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3085, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1824, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3087, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1826, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3089, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1828, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_outinteger = 0; - __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_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_mstate_global->__pyx_n_u_TA_DX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3092, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKEMOD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1831, __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(5, 3093, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1832, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -67549,9 +68903,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_538stream_DX(CYTHON_UNUSED PyObject *_ /* 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_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); @@ -67562,35 +68917,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_538stream_DX(CYTHON_UNUSED PyObject *_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_541stream_EMA(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_551stream_CDLHOMINGPIGEON(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_540stream_EMA, "stream_EMA(ndarray real, int timeperiod=-0x80000000)\n\nEMA(real[, timeperiod=?])\n\nExponential Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_541stream_EMA = {"stream_EMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_541stream_EMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_540stream_EMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_541stream_EMA(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_550stream_CDLHOMINGPIGEON, "stream_CDLHOMINGPIGEON(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHOMINGPIGEON(open, high, low, close)\n\nHoming Pigeon (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_551stream_CDLHOMINGPIGEON = {"stream_CDLHOMINGPIGEON", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_551stream_CDLHOMINGPIGEON, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_550stream_CDLHOMINGPIGEON}; +static PyObject *__pyx_pw_5talib_7_ta_lib_551stream_CDLHOMINGPIGEON(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_EMA (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDLHOMINGPIGEON (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -67600,62 +68957,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3095, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1834, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1834, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1834, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3095, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1834, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3095, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1834, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_EMA", 0) < (0)) __PYX_ERR(5, 3095, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_EMA", 0, 1, 2, i); __PYX_ERR(5, 3095, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3095, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3095, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLHOMINGPIGEON", 0) < (0)) __PYX_ERR(5, 1834, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLHOMINGPIGEON", 1, 4, 4, i); __PYX_ERR(5, 1834, __pyx_L3_error) } } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3097, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1834, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1834, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1834, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1834, __pyx_L3_error) } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_EMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3095, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDLHOMINGPIGEON", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1834, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_EMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3097, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_540stream_EMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1836, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1836, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1836, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1836, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_550stream_CDLHOMINGPIGEON(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -67674,41 +69039,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_540stream_EMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_550stream_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_real_data; + 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; + 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_EMA", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __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_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3116, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1856, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1858, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __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 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1860, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1862, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3121, __pyx_L1_error) + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1864, __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_mstate_global->__pyx_n_u_TA_CDLHOMINGPIGEON, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1867, __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(5, 3122, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1868, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -67718,10 +69112,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_540stream_EMA(CYTHON_UNUSED PyObject * /* 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_AddTraceback("talib._ta_lib.stream_CDLHOMINGPIGEON", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -67729,34 +69126,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_540stream_EMA(CYTHON_UNUSED PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_543stream_EXP(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_553stream_CDLIDENTICAL3CROWS(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_542stream_EXP, "stream_EXP(ndarray real)\n\nEXP(real)\n\nVector Arithmetic Exp (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_543stream_EXP = {"stream_EXP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_543stream_EXP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_542stream_EXP}; -static PyObject *__pyx_pw_5talib_7_ta_lib_543stream_EXP(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_552stream_CDLIDENTICAL3CROWS, "stream_CDLIDENTICAL3CROWS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLIDENTICAL3CROWS(open, high, low, close)\n\nIdentical Three Crows (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_553stream_CDLIDENTICAL3CROWS = {"stream_CDLIDENTICAL3CROWS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_553stream_CDLIDENTICAL3CROWS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_552stream_CDLIDENTICAL3CROWS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_553stream_CDLIDENTICAL3CROWS(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_EXP (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDLIDENTICAL3CROWS (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -67766,46 +69166,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3124, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1870, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1870, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1870, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1870, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3124, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1870, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_EXP", 0) < (0)) __PYX_ERR(5, 3124, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_EXP", 1, 1, 1, i); __PYX_ERR(5, 3124, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLIDENTICAL3CROWS", 0) < (0)) __PYX_ERR(5, 1870, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLIDENTICAL3CROWS", 1, 4, 4, i); __PYX_ERR(5, 1870, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3124, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1870, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1870, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1870, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1870, __pyx_L3_error) } - __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_EXP", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3124, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDLIDENTICAL3CROWS", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1870, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_EXP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3126, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_542stream_EXP(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1872, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1872, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1872, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1872, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_552stream_CDLIDENTICAL3CROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -67824,41 +69248,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_542stream_EXP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_552stream_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_real_data; + 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; + 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_EXP", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __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_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3143, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1892, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1894, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __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 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1896, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EXP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3148, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1898, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1900, __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_mstate_global->__pyx_n_u_TA_CDLIDENTICAL3CROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1903, __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(5, 3149, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1904, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -67868,10 +69321,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_542stream_EXP(CYTHON_UNUSED PyObject * /* 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_AddTraceback("talib._ta_lib.stream_CDLIDENTICAL3CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -67879,34 +69335,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_542stream_EXP(CYTHON_UNUSED PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_545stream_FLOOR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_555stream_CDLINNECK(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_544stream_FLOOR, "stream_FLOOR(ndarray real)\n\nFLOOR(real)\n\nVector Floor (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_545stream_FLOOR = {"stream_FLOOR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_545stream_FLOOR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_544stream_FLOOR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_545stream_FLOOR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_554stream_CDLINNECK, "stream_CDLINNECK(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLINNECK(open, high, low, close)\n\nIn-Neck Pattern (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_555stream_CDLINNECK = {"stream_CDLINNECK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_555stream_CDLINNECK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_554stream_CDLINNECK}; +static PyObject *__pyx_pw_5talib_7_ta_lib_555stream_CDLINNECK(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_FLOOR (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDLINNECK (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -67916,46 +69375,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3151, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1906, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1906, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1906, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1906, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3151, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1906, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_FLOOR", 0) < (0)) __PYX_ERR(5, 3151, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_FLOOR", 1, 1, 1, i); __PYX_ERR(5, 3151, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLINNECK", 0) < (0)) __PYX_ERR(5, 1906, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLINNECK", 1, 4, 4, i); __PYX_ERR(5, 1906, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3151, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1906, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1906, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1906, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1906, __pyx_L3_error) } - __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_FLOOR", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3151, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDLINNECK", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1906, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_FLOOR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3153, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_544stream_FLOOR(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1908, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1908, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1908, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1908, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_554stream_CDLINNECK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -67974,41 +69457,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_544stream_FLOOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_554stream_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_real_data; + 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; + 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_FLOOR", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __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_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3170, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1928, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1930, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __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 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1932, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1934, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1936, __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_mstate_global->__pyx_n_u_TA_FLOOR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3175, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINNECK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1939, __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(5, 3176, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1940, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -68018,10 +69530,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_544stream_FLOOR(CYTHON_UNUSED PyObject /* 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_AddTraceback("talib._ta_lib.stream_CDLINNECK", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -68029,34 +69544,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_544stream_FLOOR(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_547stream_HT_DCPERIOD(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_557stream_CDLINVERTEDHAMMER(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_546stream_HT_DCPERIOD, "stream_HT_DCPERIOD(ndarray real)\n\nHT_DCPERIOD(real)\n\nHilbert Transform - Dominant Cycle Period (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_547stream_HT_DCPERIOD = {"stream_HT_DCPERIOD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_547stream_HT_DCPERIOD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_546stream_HT_DCPERIOD}; -static PyObject *__pyx_pw_5talib_7_ta_lib_547stream_HT_DCPERIOD(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_556stream_CDLINVERTEDHAMMER, "stream_CDLINVERTEDHAMMER(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLINVERTEDHAMMER(open, high, low, close)\n\nInverted Hammer (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_557stream_CDLINVERTEDHAMMER = {"stream_CDLINVERTEDHAMMER", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_557stream_CDLINVERTEDHAMMER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_556stream_CDLINVERTEDHAMMER}; +static PyObject *__pyx_pw_5talib_7_ta_lib_557stream_CDLINVERTEDHAMMER(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_HT_DCPERIOD (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDLINVERTEDHAMMER (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -68066,46 +69584,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3178, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1942, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1942, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1942, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1942, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3178, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1942, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_HT_DCPERIOD", 0) < (0)) __PYX_ERR(5, 3178, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_HT_DCPERIOD", 1, 1, 1, i); __PYX_ERR(5, 3178, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLINVERTEDHAMMER", 0) < (0)) __PYX_ERR(5, 1942, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLINVERTEDHAMMER", 1, 4, 4, i); __PYX_ERR(5, 1942, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3178, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1942, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1942, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1942, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1942, __pyx_L3_error) } - __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_HT_DCPERIOD", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3178, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDLINVERTEDHAMMER", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1942, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_HT_DCPERIOD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3180, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_546stream_HT_DCPERIOD(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1944, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1944, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1944, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1944, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_556stream_CDLINVERTEDHAMMER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -68124,41 +69666,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_546stream_HT_DCPERIOD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_556stream_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_real_data; + 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; + 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_HT_DCPERIOD", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __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_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3197, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1964, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1966, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __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 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1968, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1970, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1972, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPERIOD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3202, __pyx_L1_error) + __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_mstate_global->__pyx_n_u_TA_CDLINVERTEDHAMMER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1975, __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(5, 3203, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1976, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -68168,10 +69739,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_546stream_HT_DCPERIOD(CYTHON_UNUSED Py /* 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_AddTraceback("talib._ta_lib.stream_CDLINVERTEDHAMMER", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -68179,34 +69753,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_546stream_HT_DCPERIOD(CYTHON_UNUSED Py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_549stream_HT_DCPHASE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_559stream_CDLKICKING(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_548stream_HT_DCPHASE, "stream_HT_DCPHASE(ndarray real)\n\nHT_DCPHASE(real)\n\nHilbert Transform - Dominant Cycle Phase (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_549stream_HT_DCPHASE = {"stream_HT_DCPHASE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_549stream_HT_DCPHASE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_548stream_HT_DCPHASE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_549stream_HT_DCPHASE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_558stream_CDLKICKING, "stream_CDLKICKING(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLKICKING(open, high, low, close)\n\nKicking (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_559stream_CDLKICKING = {"stream_CDLKICKING", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_559stream_CDLKICKING, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_558stream_CDLKICKING}; +static PyObject *__pyx_pw_5talib_7_ta_lib_559stream_CDLKICKING(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_HT_DCPHASE (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDLKICKING (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -68216,46 +69793,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3205, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1978, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1978, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1978, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1978, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3205, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1978, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_HT_DCPHASE", 0) < (0)) __PYX_ERR(5, 3205, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_HT_DCPHASE", 1, 1, 1, i); __PYX_ERR(5, 3205, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLKICKING", 0) < (0)) __PYX_ERR(5, 1978, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLKICKING", 1, 4, 4, i); __PYX_ERR(5, 1978, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3205, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1978, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1978, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1978, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1978, __pyx_L3_error) } - __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_HT_DCPHASE", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3205, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDLKICKING", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1978, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_HT_DCPHASE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3207, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_548stream_HT_DCPHASE(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1980, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1980, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1980, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1980, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_558stream_CDLKICKING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -68274,41 +69875,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_548stream_HT_DCPHASE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_558stream_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_real_data; + 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; + 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_HT_DCPHASE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __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_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3224, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2000, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2002, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __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 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2004, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 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_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPHASE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3229, __pyx_L1_error) + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2008, __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_mstate_global->__pyx_n_u_TA_CDLKICKING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2011, __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(5, 3230, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2012, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -68318,10 +69948,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_548stream_HT_DCPHASE(CYTHON_UNUSED PyO /* 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_AddTraceback("talib._ta_lib.stream_CDLKICKING", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -68329,34 +69962,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_548stream_HT_DCPHASE(CYTHON_UNUSED PyO /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_551stream_HT_PHASOR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_561stream_CDLKICKINGBYLENGTH(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_550stream_HT_PHASOR, "stream_HT_PHASOR(ndarray real)\n\nHT_PHASOR(real)\n\nHilbert Transform - Phasor Components (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n inphase\n quadrature"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_551stream_HT_PHASOR = {"stream_HT_PHASOR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_551stream_HT_PHASOR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_550stream_HT_PHASOR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_551stream_HT_PHASOR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_560stream_CDLKICKINGBYLENGTH, "stream_CDLKICKINGBYLENGTH(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLKICKINGBYLENGTH(open, high, low, close)\n\nKicking - bull/bear determined by the longer marubozu (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_561stream_CDLKICKINGBYLENGTH = {"stream_CDLKICKINGBYLENGTH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_561stream_CDLKICKINGBYLENGTH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_560stream_CDLKICKINGBYLENGTH}; +static PyObject *__pyx_pw_5talib_7_ta_lib_561stream_CDLKICKINGBYLENGTH(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_HT_PHASOR (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDLKICKINGBYLENGTH (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -68366,46 +70002,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3232, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2014, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2014, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2014, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2014, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3232, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2014, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_HT_PHASOR", 0) < (0)) __PYX_ERR(5, 3232, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_HT_PHASOR", 1, 1, 1, i); __PYX_ERR(5, 3232, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLKICKINGBYLENGTH", 0) < (0)) __PYX_ERR(5, 2014, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLKICKINGBYLENGTH", 1, 4, 4, i); __PYX_ERR(5, 2014, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3232, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2014, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2014, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2014, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2014, __pyx_L3_error) } - __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_HT_PHASOR", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3232, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDLKICKINGBYLENGTH", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2014, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_HT_PHASOR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3234, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_550stream_HT_PHASOR(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2016, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2016, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2016, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2016, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_560stream_CDLKICKINGBYLENGTH(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -68424,71 +70084,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_550stream_HT_PHASOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_560stream_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_real_data; + 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_outinphase; - double __pyx_v_outquadrature; + int __pyx_v_outinteger; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; + npy_intp __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_HT_PHASOR", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __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_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3253, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2036, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2038, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_v_outinphase = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __pyx_v_outquadrature = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2040, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_v_retCode = TA_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_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2042, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2044, __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_mstate_global->__pyx_n_u_TA_HT_PHASOR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3259, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKINGBYLENGTH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2047, __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(5, 3260, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2048, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outquadrature); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3260, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3260, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 3260, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2) != (0)) __PYX_ERR(5, 3260, __pyx_L1_error); + __pyx_r = __pyx_t_1; __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_AddTraceback("talib._ta_lib.stream_CDLKICKINGBYLENGTH", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -68496,34 +70171,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_550stream_HT_PHASOR(CYTHON_UNUSED PyOb /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_553stream_HT_SINE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_563stream_CDLLADDERBOTTOM(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_552stream_HT_SINE, "stream_HT_SINE(ndarray real)\n\nHT_SINE(real)\n\nHilbert Transform - SineWave (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n sine\n leadsine"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_553stream_HT_SINE = {"stream_HT_SINE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_553stream_HT_SINE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_552stream_HT_SINE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_553stream_HT_SINE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_562stream_CDLLADDERBOTTOM, "stream_CDLLADDERBOTTOM(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLLADDERBOTTOM(open, high, low, close)\n\nLadder Bottom (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_563stream_CDLLADDERBOTTOM = {"stream_CDLLADDERBOTTOM", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_563stream_CDLLADDERBOTTOM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_562stream_CDLLADDERBOTTOM}; +static PyObject *__pyx_pw_5talib_7_ta_lib_563stream_CDLLADDERBOTTOM(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_HT_SINE (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDLLADDERBOTTOM (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -68533,46 +70211,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3262, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2050, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2050, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2050, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2050, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3262, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2050, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_HT_SINE", 0) < (0)) __PYX_ERR(5, 3262, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_HT_SINE", 1, 1, 1, i); __PYX_ERR(5, 3262, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLLADDERBOTTOM", 0) < (0)) __PYX_ERR(5, 2050, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLLADDERBOTTOM", 1, 4, 4, i); __PYX_ERR(5, 2050, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3262, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2050, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2050, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2050, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2050, __pyx_L3_error) } - __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_HT_SINE", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3262, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDLLADDERBOTTOM", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2050, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_HT_SINE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3264, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_552stream_HT_SINE(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2052, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2052, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2052, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2052, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_562stream_CDLLADDERBOTTOM(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -68591,71 +70293,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_552stream_HT_SINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_562stream_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_real_data; + 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_outsine; - double __pyx_v_outleadsine; + int __pyx_v_outinteger; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; + npy_intp __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_HT_SINE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __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_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3283, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2072, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2074, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_v_outsine = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __pyx_v_outleadsine = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2076, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_v_retCode = TA_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_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2078, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2080, __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_mstate_global->__pyx_n_u_TA_HT_SINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3289, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLADDERBOTTOM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2083, __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(5, 3290, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2084, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outleadsine); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3290, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3290, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 3290, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2) != (0)) __PYX_ERR(5, 3290, __pyx_L1_error); + __pyx_r = __pyx_t_1; __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_AddTraceback("talib._ta_lib.stream_CDLLADDERBOTTOM", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -68663,34 +70380,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_552stream_HT_SINE(CYTHON_UNUSED PyObje /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_555stream_HT_TRENDLINE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_565stream_CDLLONGLEGGEDDOJI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_554stream_HT_TRENDLINE, "stream_HT_TRENDLINE(ndarray real)\n\nHT_TRENDLINE(real)\n\nHilbert Transform - Instantaneous Trendline (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_555stream_HT_TRENDLINE = {"stream_HT_TRENDLINE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_555stream_HT_TRENDLINE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_554stream_HT_TRENDLINE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_555stream_HT_TRENDLINE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_564stream_CDLLONGLEGGEDDOJI, "stream_CDLLONGLEGGEDDOJI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLLONGLEGGEDDOJI(open, high, low, close)\n\nLong Legged Doji (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_565stream_CDLLONGLEGGEDDOJI = {"stream_CDLLONGLEGGEDDOJI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_565stream_CDLLONGLEGGEDDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_564stream_CDLLONGLEGGEDDOJI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_565stream_CDLLONGLEGGEDDOJI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_HT_TRENDLINE (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDLLONGLEGGEDDOJI (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -68700,46 +70420,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3292, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2086, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2086, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2086, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2086, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3292, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2086, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_HT_TRENDLINE", 0) < (0)) __PYX_ERR(5, 3292, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_HT_TRENDLINE", 1, 1, 1, i); __PYX_ERR(5, 3292, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLLONGLEGGEDDOJI", 0) < (0)) __PYX_ERR(5, 2086, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLLONGLEGGEDDOJI", 1, 4, 4, i); __PYX_ERR(5, 2086, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3292, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2086, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2086, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2086, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2086, __pyx_L3_error) } - __pyx_v_real = ((PyArrayObject *)values[0]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_HT_TRENDLINE", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3292, __pyx_L3_error) + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_CDLLONGLEGGEDDOJI", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2086, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_HT_TRENDLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3294, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_554stream_HT_TRENDLINE(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2088, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2088, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2088, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2088, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_564stream_CDLLONGLEGGEDDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -68758,41 +70502,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_554stream_HT_TRENDLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_564stream_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_real_data; + 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; + 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_HT_TRENDLINE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __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_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3311, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2110, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __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 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2112, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2114, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2116, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDLINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3316, __pyx_L1_error) + __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_mstate_global->__pyx_n_u_TA_CDLLONGLEGGEDDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2119, __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(5, 3317, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -68802,10 +70575,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_554stream_HT_TRENDLINE(CYTHON_UNUSED P /* 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_AddTraceback("talib._ta_lib.stream_CDLLONGLEGGEDDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -68813,34 +70589,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_554stream_HT_TRENDLINE(CYTHON_UNUSED P /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_557stream_HT_TRENDMODE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_567stream_CDLLONGLINE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_556stream_HT_TRENDMODE, "stream_HT_TRENDMODE(ndarray real)\n\nHT_TRENDMODE(real)\n\nHilbert Transform - Trend vs Cycle Mode (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_557stream_HT_TRENDMODE = {"stream_HT_TRENDMODE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_557stream_HT_TRENDMODE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_556stream_HT_TRENDMODE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_557stream_HT_TRENDMODE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_566stream_CDLLONGLINE, "stream_CDLLONGLINE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLLONGLINE(open, high, low, close)\n\nLong Line Candle (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_567stream_CDLLONGLINE = {"stream_CDLLONGLINE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_567stream_CDLLONGLINE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_566stream_CDLLONGLINE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_567stream_CDLLONGLINE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_HT_TRENDMODE (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDLLONGLINE (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -68850,46 +70629,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3319, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2122, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2122, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2122, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2122, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3319, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2122, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_HT_TRENDMODE", 0) < (0)) __PYX_ERR(5, 3319, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_HT_TRENDMODE", 1, 1, 1, i); __PYX_ERR(5, 3319, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLLONGLINE", 0) < (0)) __PYX_ERR(5, 2122, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLLONGLINE", 1, 4, 4, i); __PYX_ERR(5, 2122, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3319, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2122, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2122, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2122, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2122, __pyx_L3_error) } - __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_HT_TRENDMODE", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3319, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDLLONGLINE", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2122, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_HT_TRENDMODE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3321, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_556stream_HT_TRENDMODE(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2124, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2124, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2124, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2124, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_566stream_CDLLONGLINE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -68908,41 +70711,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_556stream_HT_TRENDMODE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_566stream_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_real_data; + 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_HT_TRENDMODE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __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_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3338, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2146, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2148, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2150, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2152, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; __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_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_mstate_global->__pyx_n_u_TA_HT_TRENDMODE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3343, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2155, __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_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3344, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2156, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -68952,10 +70784,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_556stream_HT_TRENDMODE(CYTHON_UNUSED P /* 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_AddTraceback("talib._ta_lib.stream_CDLLONGLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -68963,16 +70798,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_556stream_HT_TRENDMODE(CYTHON_UNUSED P /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_559stream_IMI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_569stream_CDLMARUBOZU(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_558stream_IMI, "stream_IMI(ndarray open, ndarray close, int timeperiod=-0x80000000)\n\nIMI(open, close[, timeperiod=?])\n\nIntraday Momentum Index (Momentum Indicators)\n\nInputs:\n prices: ['open', 'close']\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_559stream_IMI = {"stream_IMI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_559stream_IMI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_558stream_IMI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_559stream_IMI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_568stream_CDLMARUBOZU, "stream_CDLMARUBOZU(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLMARUBOZU(open, high, low, close)\n\nMarubozu (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_569stream_CDLMARUBOZU = {"stream_CDLMARUBOZU", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_569stream_CDLMARUBOZU, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_568stream_CDLMARUBOZU}; +static PyObject *__pyx_pw_5talib_7_ta_lib_569stream_CDLMARUBOZU(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -68980,19 +70815,20 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_IMI (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDLMARUBOZU (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -69002,70 +70838,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3346, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2158, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2158, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3346, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2158, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3346, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2158, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3346, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2158, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_IMI", 0) < (0)) __PYX_ERR(5, 3346, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_IMI", 0, 2, 3, i); __PYX_ERR(5, 3346, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLMARUBOZU", 0) < (0)) __PYX_ERR(5, 2158, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLMARUBOZU", 1, 4, 4, i); __PYX_ERR(5, 2158, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3346, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3346, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3346, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2158, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2158, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2158, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2158, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_close = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3348, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_IMI", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 3346, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDLMARUBOZU", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2158, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_IMI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 3348, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 3348, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_558stream_IMI(__pyx_self, __pyx_v_open, __pyx_v_close, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2160, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2160, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2160, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2160, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_568stream_CDLMARUBOZU(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -69084,14 +70920,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_558stream_IMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_568stream_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; - double __pyx_v_outreal; + int __pyx_v_outinteger; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -69099,37 +70937,53 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_558stream_IMI(CYTHON_UNUSED PyObject * int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_IMI", 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(5, 3368, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2180, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3370, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2182, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2184, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2186, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_open, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3372, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2188, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_outinteger = 0; - __pyx_v_retCode = TA_IMI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + __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_mstate_global->__pyx_n_u_TA_IMI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3375, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMARUBOZU, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2191, __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(5, 3376, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -69139,10 +70993,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_558stream_IMI(CYTHON_UNUSED PyObject * /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_IMI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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(); @@ -69151,35 +71007,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_558stream_IMI(CYTHON_UNUSED PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_561stream_KAMA(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_571stream_CDLMATCHINGLOW(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_560stream_KAMA, "stream_KAMA(ndarray real, int timeperiod=-0x80000000)\n\nKAMA(real[, timeperiod=?])\n\nKaufman Adaptive Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_561stream_KAMA = {"stream_KAMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_561stream_KAMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_560stream_KAMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_561stream_KAMA(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_570stream_CDLMATCHINGLOW, "stream_CDLMATCHINGLOW(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLMATCHINGLOW(open, high, low, close)\n\nMatching Low (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_571stream_CDLMATCHINGLOW = {"stream_CDLMATCHINGLOW", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_571stream_CDLMATCHINGLOW, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_570stream_CDLMATCHINGLOW}; +static PyObject *__pyx_pw_5talib_7_ta_lib_571stream_CDLMATCHINGLOW(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_KAMA (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDLMATCHINGLOW (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -69189,62 +71047,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3378, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2194, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2194, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2194, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3378, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2194, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3378, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2194, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_KAMA", 0) < (0)) __PYX_ERR(5, 3378, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_KAMA", 0, 1, 2, i); __PYX_ERR(5, 3378, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3378, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3378, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLMATCHINGLOW", 0) < (0)) __PYX_ERR(5, 2194, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLMATCHINGLOW", 1, 4, 4, i); __PYX_ERR(5, 2194, __pyx_L3_error) } } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3380, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2194, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2194, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2194, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2194, __pyx_L3_error) } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_KAMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3378, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDLMATCHINGLOW", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2194, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_KAMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3380, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_560stream_KAMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2196, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2196, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2196, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2196, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_570stream_CDLMATCHINGLOW(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -69263,41 +71129,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_560stream_KAMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_570stream_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_real_data; + 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; + 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_KAMA", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __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_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3399, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2216, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2218, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __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 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2220, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2222, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KAMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3404, __pyx_L1_error) + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2224, __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_mstate_global->__pyx_n_u_TA_CDLMATCHINGLOW, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2227, __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(5, 3405, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2228, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -69307,10 +71202,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_560stream_KAMA(CYTHON_UNUSED PyObject /* 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_AddTraceback("talib._ta_lib.stream_CDLMATCHINGLOW", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -69318,35 +71216,38 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_560stream_KAMA(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_563stream_LINEARREG(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_573stream_CDLMATHOLD(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_562stream_LINEARREG, "stream_LINEARREG(ndarray real, int timeperiod=-0x80000000)\n\nLINEARREG(real[, timeperiod=?])\n\nLinear Regression (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_563stream_LINEARREG = {"stream_LINEARREG", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_563stream_LINEARREG, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_562stream_LINEARREG}; -static PyObject *__pyx_pw_5talib_7_ta_lib_563stream_LINEARREG(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_572stream_CDLMATHOLD, "stream_CDLMATHOLD(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.5)\n\nCDLMATHOLD(open, high, low, close[, penetration=?])\n\nMat Hold (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nParameters:\n penetration: 0.5\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_573stream_CDLMATHOLD = {"stream_CDLMATHOLD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_573stream_CDLMATHOLD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_572stream_CDLMATHOLD}; +static PyObject *__pyx_pw_5talib_7_ta_lib_573stream_CDLMATHOLD(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + double __pyx_v_penetration; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_LINEARREG (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDLMATHOLD (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -69356,62 +71257,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3407, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2230, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 2230, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2230, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2230, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3407, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2230, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3407, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2230, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_LINEARREG", 0) < (0)) __PYX_ERR(5, 3407, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_LINEARREG", 0, 1, 2, i); __PYX_ERR(5, 3407, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLMATHOLD", 0) < (0)) __PYX_ERR(5, 2230, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLMATHOLD", 0, 4, 5, i); __PYX_ERR(5, 2230, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3407, __pyx_L3_error) + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 2230, __pyx_L3_error) CYTHON_FALLTHROUGH; - case 1: + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2230, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2230, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2230, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3407, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2230, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3409, __pyx_L3_error) + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 2232, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + __pyx_v_penetration = ((double)((double)0.5)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_LINEARREG", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3407, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDLMATHOLD", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 2230, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_LINEARREG", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3409, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_562stream_LINEARREG(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2232, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2232, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2232, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2232, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_572stream_CDLMATHOLD(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); /* function exit code */ goto __pyx_L0; @@ -69430,41 +71355,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_562stream_LINEARREG(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_572stream_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_real_data; + 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; + 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_LINEARREG", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __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_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3428, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2254, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2256, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __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 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2258, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2260, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3433, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2262, __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_mstate_global->__pyx_n_u_TA_CDLMATHOLD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2265, __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(5, 3434, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -69474,10 +71428,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_562stream_LINEARREG(CYTHON_UNUSED PyOb /* 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_AddTraceback("talib._ta_lib.stream_CDLMATHOLD", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -69485,35 +71442,38 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_562stream_LINEARREG(CYTHON_UNUSED PyOb /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_565stream_LINEARREG_ANGLE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_575stream_CDLMORNINGDOJISTAR(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_564stream_LINEARREG_ANGLE, "stream_LINEARREG_ANGLE(ndarray real, int timeperiod=-0x80000000)\n\nLINEARREG_ANGLE(real[, timeperiod=?])\n\nLinear Regression Angle (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_565stream_LINEARREG_ANGLE = {"stream_LINEARREG_ANGLE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_565stream_LINEARREG_ANGLE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_564stream_LINEARREG_ANGLE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_565stream_LINEARREG_ANGLE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_574stream_CDLMORNINGDOJISTAR, "stream_CDLMORNINGDOJISTAR(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\n\nCDLMORNINGDOJISTAR(open, high, low, close[, penetration=?])\n\nMorning Doji Star (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_575stream_CDLMORNINGDOJISTAR = {"stream_CDLMORNINGDOJISTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_575stream_CDLMORNINGDOJISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_574stream_CDLMORNINGDOJISTAR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_575stream_CDLMORNINGDOJISTAR(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + double __pyx_v_penetration; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_LINEARREG_ANGLE (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDLMORNINGDOJISTAR (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -69523,62 +71483,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3436, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2268, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 2268, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2268, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2268, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3436, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2268, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3436, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2268, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_LINEARREG_ANGLE", 0) < (0)) __PYX_ERR(5, 3436, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_LINEARREG_ANGLE", 0, 1, 2, i); __PYX_ERR(5, 3436, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLMORNINGDOJISTAR", 0) < (0)) __PYX_ERR(5, 2268, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLMORNINGDOJISTAR", 0, 4, 5, i); __PYX_ERR(5, 2268, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3436, __pyx_L3_error) + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 2268, __pyx_L3_error) CYTHON_FALLTHROUGH; - case 1: + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2268, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2268, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2268, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3436, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2268, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3438, __pyx_L3_error) + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 2270, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + __pyx_v_penetration = ((double)((double)0.3)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_LINEARREG_ANGLE", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3436, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDLMORNINGDOJISTAR", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 2268, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_LINEARREG_ANGLE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3438, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_564stream_LINEARREG_ANGLE(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2270, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2270, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2270, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2270, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_574stream_CDLMORNINGDOJISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); /* function exit code */ goto __pyx_L0; @@ -69597,41 +71581,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_564stream_LINEARREG_ANGLE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_574stream_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_real_data; + 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; + 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_LINEARREG_ANGLE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __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_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3457, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2292, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2294, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __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 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2296, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2298, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2300, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_ANGLE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3462, __pyx_L1_error) + __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_mstate_global->__pyx_n_u_TA_CDLMORNINGDOJISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2303, __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(5, 3463, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2304, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -69641,10 +71654,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_564stream_LINEARREG_ANGLE(CYTHON_UNUSE /* 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_AddTraceback("talib._ta_lib.stream_CDLMORNINGDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -69652,35 +71668,38 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_564stream_LINEARREG_ANGLE(CYTHON_UNUSE /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_567stream_LINEARREG_INTERCEPT(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_577stream_CDLMORNINGSTAR(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_566stream_LINEARREG_INTERCEPT, "stream_LINEARREG_INTERCEPT(ndarray real, int timeperiod=-0x80000000)\n\nLINEARREG_INTERCEPT(real[, timeperiod=?])\n\nLinear Regression Intercept (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_567stream_LINEARREG_INTERCEPT = {"stream_LINEARREG_INTERCEPT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_567stream_LINEARREG_INTERCEPT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_566stream_LINEARREG_INTERCEPT}; -static PyObject *__pyx_pw_5talib_7_ta_lib_567stream_LINEARREG_INTERCEPT(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_576stream_CDLMORNINGSTAR, "stream_CDLMORNINGSTAR(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\n\nCDLMORNINGSTAR(open, high, low, close[, penetration=?])\n\nMorning Star (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_577stream_CDLMORNINGSTAR = {"stream_CDLMORNINGSTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_577stream_CDLMORNINGSTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_576stream_CDLMORNINGSTAR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_577stream_CDLMORNINGSTAR(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + double __pyx_v_penetration; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_LINEARREG_INTERCEPT (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDLMORNINGSTAR (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -69690,62 +71709,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3465, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2306, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3465, __pyx_L3_error) + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 2306, __pyx_L3_error) CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3465, __pyx_L3_error) + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2306, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2306, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2306, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2306, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_LINEARREG_INTERCEPT", 0) < (0)) __PYX_ERR(5, 3465, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_LINEARREG_INTERCEPT", 0, 1, 2, i); __PYX_ERR(5, 3465, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLMORNINGSTAR", 0) < (0)) __PYX_ERR(5, 2306, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLMORNINGSTAR", 0, 4, 5, i); __PYX_ERR(5, 2306, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3465, __pyx_L3_error) + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 2306, __pyx_L3_error) CYTHON_FALLTHROUGH; - case 1: + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2306, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2306, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2306, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3465, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2306, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3467, __pyx_L3_error) + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 2308, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + __pyx_v_penetration = ((double)((double)0.3)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_LINEARREG_INTERCEPT", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3465, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDLMORNINGSTAR", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 2306, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_LINEARREG_INTERCEPT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3467, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_566stream_LINEARREG_INTERCEPT(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2308, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2308, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2308, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2308, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_576stream_CDLMORNINGSTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); /* function exit code */ goto __pyx_L0; @@ -69764,41 +71807,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_566stream_LINEARREG_INTERCEPT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_576stream_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_real_data; + 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; + 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_LINEARREG_INTERCEPT", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __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_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3486, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2330, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2332, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __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 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2334, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2336, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2338, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_v_outinteger = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_INTERCEPT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3491, __pyx_L1_error) + __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_mstate_global->__pyx_n_u_TA_CDLMORNINGSTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2341, __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(5, 3492, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2342, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -69808,10 +71880,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_566stream_LINEARREG_INTERCEPT(CYTHON_U /* 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_AddTraceback("talib._ta_lib.stream_CDLMORNINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -69819,35 +71894,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_566stream_LINEARREG_INTERCEPT(CYTHON_U /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_569stream_LINEARREG_SLOPE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_579stream_CDLONNECK(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_568stream_LINEARREG_SLOPE, "stream_LINEARREG_SLOPE(ndarray real, int timeperiod=-0x80000000)\n\nLINEARREG_SLOPE(real[, timeperiod=?])\n\nLinear Regression Slope (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_569stream_LINEARREG_SLOPE = {"stream_LINEARREG_SLOPE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_569stream_LINEARREG_SLOPE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_568stream_LINEARREG_SLOPE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_569stream_LINEARREG_SLOPE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_578stream_CDLONNECK, "stream_CDLONNECK(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLONNECK(open, high, low, close)\n\nOn-Neck Pattern (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_579stream_CDLONNECK = {"stream_CDLONNECK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_579stream_CDLONNECK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_578stream_CDLONNECK}; +static PyObject *__pyx_pw_5talib_7_ta_lib_579stream_CDLONNECK(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_LINEARREG_SLOPE (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDLONNECK (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -69857,62 +71934,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3494, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2344, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2344, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2344, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3494, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2344, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3494, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2344, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_LINEARREG_SLOPE", 0) < (0)) __PYX_ERR(5, 3494, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_LINEARREG_SLOPE", 0, 1, 2, i); __PYX_ERR(5, 3494, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3494, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3494, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLONNECK", 0) < (0)) __PYX_ERR(5, 2344, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLONNECK", 1, 4, 4, i); __PYX_ERR(5, 2344, __pyx_L3_error) } } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3496, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2344, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2344, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2344, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2344, __pyx_L3_error) } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_LINEARREG_SLOPE", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3494, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDLONNECK", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2344, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_LINEARREG_SLOPE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3496, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_568stream_LINEARREG_SLOPE(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2346, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2346, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2346, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2346, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_578stream_CDLONNECK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -69931,41 +72016,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_568stream_LINEARREG_SLOPE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_578stream_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_real_data; + 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; + 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_LINEARREG_SLOPE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __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_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3515, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2366, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2368, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __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 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2370, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2372, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2374, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_v_outinteger = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_SLOPE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3520, __pyx_L1_error) + __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_mstate_global->__pyx_n_u_TA_CDLONNECK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2377, __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(5, 3521, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2378, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -69975,10 +72089,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_568stream_LINEARREG_SLOPE(CYTHON_UNUSE /* 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_AddTraceback("talib._ta_lib.stream_CDLONNECK", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -69986,34 +72103,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_568stream_LINEARREG_SLOPE(CYTHON_UNUSE /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_571stream_LN(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_581stream_CDLPIERCING(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_570stream_LN, "stream_LN(ndarray real)\n\nLN(real)\n\nVector Log Natural (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_571stream_LN = {"stream_LN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_571stream_LN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_570stream_LN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_571stream_LN(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_580stream_CDLPIERCING, "stream_CDLPIERCING(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLPIERCING(open, high, low, close)\n\nPiercing Pattern (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_581stream_CDLPIERCING = {"stream_CDLPIERCING", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_581stream_CDLPIERCING, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_580stream_CDLPIERCING}; +static PyObject *__pyx_pw_5talib_7_ta_lib_581stream_CDLPIERCING(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_LN (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDLPIERCING (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -70023,46 +72143,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3523, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2380, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2380, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2380, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2380, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3523, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2380, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_LN", 0) < (0)) __PYX_ERR(5, 3523, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_LN", 1, 1, 1, i); __PYX_ERR(5, 3523, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLPIERCING", 0) < (0)) __PYX_ERR(5, 2380, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLPIERCING", 1, 4, 4, i); __PYX_ERR(5, 2380, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3523, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2380, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2380, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2380, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2380, __pyx_L3_error) } - __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_LN", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3523, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDLPIERCING", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2380, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_LN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3525, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_570stream_LN(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2382, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2382, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2382, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2382, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_580stream_CDLPIERCING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -70081,41 +72225,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_570stream_LN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_580stream_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_real_data; + 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; + 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_LN", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __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_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3542, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2402, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2404, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __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 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2406, __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 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3547, __pyx_L1_error) + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2408, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2410, __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_mstate_global->__pyx_n_u_TA_CDLPIERCING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2413, __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(5, 3548, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2414, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -70125,10 +72298,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_570stream_LN(CYTHON_UNUSED PyObject *_ /* 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_AddTraceback("talib._ta_lib.stream_CDLPIERCING", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -70136,34 +72312,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_570stream_LN(CYTHON_UNUSED PyObject *_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_573stream_LOG10(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_583stream_CDLRICKSHAWMAN(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_572stream_LOG10, "stream_LOG10(ndarray real)\n\nLOG10(real)\n\nVector Log10 (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_573stream_LOG10 = {"stream_LOG10", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_573stream_LOG10, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_572stream_LOG10}; -static PyObject *__pyx_pw_5talib_7_ta_lib_573stream_LOG10(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_582stream_CDLRICKSHAWMAN, "stream_CDLRICKSHAWMAN(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLRICKSHAWMAN(open, high, low, close)\n\nRickshaw Man (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_583stream_CDLRICKSHAWMAN = {"stream_CDLRICKSHAWMAN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_583stream_CDLRICKSHAWMAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_582stream_CDLRICKSHAWMAN}; +static PyObject *__pyx_pw_5talib_7_ta_lib_583stream_CDLRICKSHAWMAN(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_LOG10 (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDLRICKSHAWMAN (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -70173,46 +72352,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3550, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2416, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2416, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2416, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2416, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3550, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2416, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_LOG10", 0) < (0)) __PYX_ERR(5, 3550, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_LOG10", 1, 1, 1, i); __PYX_ERR(5, 3550, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLRICKSHAWMAN", 0) < (0)) __PYX_ERR(5, 2416, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLRICKSHAWMAN", 1, 4, 4, i); __PYX_ERR(5, 2416, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3550, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2416, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2416, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2416, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2416, __pyx_L3_error) } - __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_LOG10", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3550, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDLRICKSHAWMAN", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2416, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_LOG10", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3552, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_572stream_LOG10(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2418, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2418, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2418, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2418, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_582stream_CDLRICKSHAWMAN(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -70231,41 +72434,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_572stream_LOG10(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_582stream_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_real_data; + 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; + 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_LOG10", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __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_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3569, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2438, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2440, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __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 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2442, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2444, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2446, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_v_outinteger = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LOG10, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3574, __pyx_L1_error) + __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_mstate_global->__pyx_n_u_TA_CDLRICKSHAWMAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2449, __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(5, 3575, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2450, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -70275,10 +72507,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_572stream_LOG10(CYTHON_UNUSED PyObject /* 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_AddTraceback("talib._ta_lib.stream_CDLRICKSHAWMAN", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -70286,36 +72521,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_572stream_LOG10(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_575stream_MA(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_585stream_CDLRISEFALL3METHODS(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_574stream_MA, "stream_MA(ndarray real, int timeperiod=-0x80000000, int matype=0)\n\nMA(real[, timeperiod=?, matype=?])\n\nMoving average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\n matype: 0 (Simple Moving Average)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_575stream_MA = {"stream_MA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_575stream_MA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_574stream_MA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_575stream_MA(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_584stream_CDLRISEFALL3METHODS, "stream_CDLRISEFALL3METHODS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLRISEFALL3METHODS(open, high, low, close)\n\nRising/Falling Three Methods (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_585stream_CDLRISEFALL3METHODS = {"stream_CDLRISEFALL3METHODS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_585stream_CDLRISEFALL3METHODS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_584stream_CDLRISEFALL3METHODS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_585stream_CDLRISEFALL3METHODS(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - int __pyx_v_matype; + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_MA (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDLRISEFALL3METHODS (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -70325,75 +72561,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3577, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2452, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2452, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3577, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2452, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3577, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2452, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3577, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2452, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MA", 0) < (0)) __PYX_ERR(5, 3577, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MA", 0, 1, 3, i); __PYX_ERR(5, 3577, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3577, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3577, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3577, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLRISEFALL3METHODS", 0) < (0)) __PYX_ERR(5, 2452, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLRISEFALL3METHODS", 1, 4, 4, i); __PYX_ERR(5, 2452, __pyx_L3_error) } } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3579, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - if (values[2]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3579, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_matype = ((int)((int)0)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2452, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2452, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2452, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2452, __pyx_L3_error) } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MA", 0, 1, 3, __pyx_nargs); __PYX_ERR(5, 3577, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDLRISEFALL3METHODS", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2452, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_MA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3579, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_574stream_MA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_matype); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2454, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2454, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2454, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2454, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_584stream_CDLRISEFALL3METHODS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -70412,41 +72643,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_574stream_MA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_matype) { +static PyObject *__pyx_pf_5talib_7_ta_lib_584stream_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_real_data; + 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; + 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_MA", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __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_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3599, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2476, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __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 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2478, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2480, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2482, __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_mstate_global->__pyx_n_u_TA_MA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3604, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRISEFALL3METHODS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2485, __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(5, 3605, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2486, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -70456,10 +72716,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_574stream_MA(CYTHON_UNUSED PyObject *_ /* 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_AddTraceback("talib._ta_lib.stream_CDLRISEFALL3METHODS", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -70467,26 +72730,26 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_574stream_MA(CYTHON_UNUSED PyObject *_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_577stream_MACD(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_587stream_CDLSEPARATINGLINES(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_576stream_MACD, "stream_MACD(ndarray real, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int signalperiod=-0x80000000)\n\nMACD(real[, fastperiod=?, slowperiod=?, signalperiod=?])\n\nMoving Average Convergence/Divergence (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastperiod: 12\n slowperiod: 26\n signalperiod: 9\nOutputs:\n macd\n macdsignal\n macdhist"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_577stream_MACD = {"stream_MACD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_577stream_MACD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_576stream_MACD}; -static PyObject *__pyx_pw_5talib_7_ta_lib_577stream_MACD(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_586stream_CDLSEPARATINGLINES, "stream_CDLSEPARATINGLINES(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSEPARATINGLINES(open, high, low, close)\n\nSeparating Lines (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_587stream_CDLSEPARATINGLINES = {"stream_CDLSEPARATINGLINES", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_587stream_CDLSEPARATINGLINES, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_586stream_CDLSEPARATINGLINES}; +static PyObject *__pyx_pw_5talib_7_ta_lib_587stream_CDLSEPARATINGLINES(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_fastperiod; - int __pyx_v_slowperiod; - int __pyx_v_signalperiod; + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -70497,7 +72760,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_MACD (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDLSEPARATINGLINES (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -70507,88 +72770,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3607, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2488, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3607, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2488, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3607, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2488, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3607, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2488, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3607, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2488, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MACD", 0) < (0)) __PYX_ERR(5, 3607, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MACD", 0, 1, 4, i); __PYX_ERR(5, 3607, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3607, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3607, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3607, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3607, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLSEPARATINGLINES", 0) < (0)) __PYX_ERR(5, 2488, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLSEPARATINGLINES", 1, 4, 4, i); __PYX_ERR(5, 2488, __pyx_L3_error) } } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3609, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)((int)-2147483648)); - } - if (values[2]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3609, __pyx_L3_error) - } else { - __pyx_v_slowperiod = ((int)((int)-2147483648)); - } - if (values[3]) { - __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3609, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_signalperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2488, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2488, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2488, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2488, __pyx_L3_error) } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MACD", 0, 1, 4, __pyx_nargs); __PYX_ERR(5, 3607, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDLSEPARATINGLINES", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2488, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_MACD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3609, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_576stream_MACD(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2490, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2490, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2490, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2490, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_586stream_CDLSEPARATINGLINES(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -70607,81 +72852,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_576stream_MACD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_586stream_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_real_data; + 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_outmacd; - double __pyx_v_outmacdsignal; - double __pyx_v_outmacdhist; + int __pyx_v_outinteger; 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; + npy_intp __pyx_t_2; 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_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_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3634, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2512, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_v_outmacd = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __pyx_v_outmacdsignal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2514, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_v_outmacdhist = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - __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 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2516, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2518, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3641, __pyx_L1_error) + __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_mstate_global->__pyx_n_u_TA_CDLSEPARATINGLINES, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2521, __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(5, 3642, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2522, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3642, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3642, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3642, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 3642, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2) != (0)) __PYX_ERR(5, 3642, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3) != (0)) __PYX_ERR(5, 3642, __pyx_L1_error); + __pyx_r = __pyx_t_1; __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_AddTraceback("talib._ta_lib.stream_CDLSEPARATINGLINES", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -70689,40 +72939,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_576stream_MACD(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_579stream_MACDEXT(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_589stream_CDLSHOOTINGSTAR(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_578stream_MACDEXT, "stream_MACDEXT(ndarray real, int fastperiod=-0x80000000, int fastmatype=0, int slowperiod=-0x80000000, int slowmatype=0, int signalperiod=-0x80000000, int signalmatype=0)\n\nMACDEXT(real[, fastperiod=?, fastmatype=?, slowperiod=?, slowmatype=?, signalperiod=?, signalmatype=?])\n\nMACD with controllable MA type (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastperiod: 12\n fastmatype: 0\n slowperiod: 26\n slowmatype: 0\n signalperiod: 9\n signalmatype: 0\nOutputs:\n macd\n macdsignal\n macdhist"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_579stream_MACDEXT = {"stream_MACDEXT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_579stream_MACDEXT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_578stream_MACDEXT}; -static PyObject *__pyx_pw_5talib_7_ta_lib_579stream_MACDEXT(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_588stream_CDLSHOOTINGSTAR, "stream_CDLSHOOTINGSTAR(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSHOOTINGSTAR(open, high, low, close)\n\nShooting Star (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_589stream_CDLSHOOTINGSTAR = {"stream_CDLSHOOTINGSTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_589stream_CDLSHOOTINGSTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_588stream_CDLSHOOTINGSTAR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_589stream_CDLSHOOTINGSTAR(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_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; + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[7] = {0,0,0,0,0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_MACDEXT (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDLSHOOTINGSTAR (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -70732,127 +72979,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_fastmatype,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_slowmatype,&__pyx_mstate_global->__pyx_n_u_signalperiod,&__pyx_mstate_global->__pyx_n_u_signalmatype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3644, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2524, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 7: - values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 3644, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 3644, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 3644, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3644, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2524, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3644, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2524, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3644, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2524, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3644, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2524, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MACDEXT", 0) < (0)) __PYX_ERR(5, 3644, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MACDEXT", 0, 1, 7, i); __PYX_ERR(5, 3644, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 7: - values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 3644, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 3644, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 3644, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3644, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3644, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3644, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3644, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLSHOOTINGSTAR", 0) < (0)) __PYX_ERR(5, 2524, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLSHOOTINGSTAR", 1, 4, 4, i); __PYX_ERR(5, 2524, __pyx_L3_error) } } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3646, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)((int)-2147483648)); - } - if (values[2]) { - __pyx_v_fastmatype = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3646, __pyx_L3_error) - } else { - __pyx_v_fastmatype = ((int)((int)0)); - } - if (values[3]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3646, __pyx_L3_error) - } else { - __pyx_v_slowperiod = ((int)((int)-2147483648)); - } - if (values[4]) { - __pyx_v_slowmatype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3646, __pyx_L3_error) - } else { - __pyx_v_slowmatype = ((int)((int)0)); - } - if (values[5]) { - __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3646, __pyx_L3_error) - } else { - __pyx_v_signalperiod = ((int)((int)-2147483648)); - } - if (values[6]) { - __pyx_v_signalmatype = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_signalmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3646, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_signalmatype = ((int)((int)0)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2524, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2524, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2524, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2524, __pyx_L3_error) } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MACDEXT", 0, 1, 7, __pyx_nargs); __PYX_ERR(5, 3644, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDLSHOOTINGSTAR", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2524, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_MACDEXT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3646, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_578stream_MACDEXT(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_fastmatype, __pyx_v_slowperiod, __pyx_v_slowmatype, __pyx_v_signalperiod, __pyx_v_signalmatype); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2526, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2526, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2526, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2526, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_588stream_CDLSHOOTINGSTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -70871,81 +73061,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_578stream_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) { +static PyObject *__pyx_pf_5talib_7_ta_lib_588stream_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_real_data; + 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_outmacd; - double __pyx_v_outmacdsignal; - double __pyx_v_outmacdhist; + int __pyx_v_outinteger; 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; + npy_intp __pyx_t_2; 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_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_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3674, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2546, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2548, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_v_outmacd = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __pyx_v_outmacdsignal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2550, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_v_outmacdhist = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - __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 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2552, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2554, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_v_outinteger = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDEXT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3681, __pyx_L1_error) + __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_mstate_global->__pyx_n_u_TA_CDLSHOOTINGSTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2557, __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(5, 3682, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2558, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3682, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3682, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3682, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 3682, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2) != (0)) __PYX_ERR(5, 3682, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3) != (0)) __PYX_ERR(5, 3682, __pyx_L1_error); + __pyx_r = __pyx_t_1; __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_AddTraceback("talib._ta_lib.stream_CDLSHOOTINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -70953,35 +73148,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_578stream_MACDEXT(CYTHON_UNUSED PyObje /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_581stream_MACDFIX(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_591stream_CDLSHORTLINE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_580stream_MACDFIX, "stream_MACDFIX(ndarray real, int signalperiod=-0x80000000)\n\nMACDFIX(real[, signalperiod=?])\n\nMoving Average Convergence/Divergence Fix 12/26 (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n signalperiod: 9\nOutputs:\n macd\n macdsignal\n macdhist"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_581stream_MACDFIX = {"stream_MACDFIX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_581stream_MACDFIX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_580stream_MACDFIX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_581stream_MACDFIX(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_590stream_CDLSHORTLINE, "stream_CDLSHORTLINE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSHORTLINE(open, high, low, close)\n\nShort Line Candle (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_591stream_CDLSHORTLINE = {"stream_CDLSHORTLINE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_591stream_CDLSHORTLINE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_590stream_CDLSHORTLINE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_591stream_CDLSHORTLINE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_signalperiod; + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_MACDFIX (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDLSHORTLINE (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -70991,62 +73188,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3684, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2560, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2560, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2560, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3684, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2560, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3684, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2560, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MACDFIX", 0) < (0)) __PYX_ERR(5, 3684, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MACDFIX", 0, 1, 2, i); __PYX_ERR(5, 3684, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3684, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3684, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLSHORTLINE", 0) < (0)) __PYX_ERR(5, 2560, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLSHORTLINE", 1, 4, 4, i); __PYX_ERR(5, 2560, __pyx_L3_error) } } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3686, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_signalperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2560, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2560, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2560, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2560, __pyx_L3_error) } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MACDFIX", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3684, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDLSHORTLINE", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2560, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_MACDFIX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3686, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_580stream_MACDFIX(__pyx_self, __pyx_v_real, __pyx_v_signalperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2562, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2562, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2562, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2562, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_590stream_CDLSHORTLINE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -71065,81 +73270,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_580stream_MACDFIX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_signalperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_590stream_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_real_data; + 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_outmacd; - double __pyx_v_outmacdsignal; - double __pyx_v_outmacdhist; + int __pyx_v_outinteger; 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; + npy_intp __pyx_t_2; 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_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_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3709, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2582, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2584, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_v_outmacd = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __pyx_v_outmacdsignal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2586, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_v_outmacdhist = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - __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 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2588, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2590, __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_mstate_global->__pyx_n_u_TA_MACDFIX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3716, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHORTLINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2593, __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(5, 3717, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2594, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3717, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3717, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3717, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 3717, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2) != (0)) __PYX_ERR(5, 3717, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3) != (0)) __PYX_ERR(5, 3717, __pyx_L1_error); + __pyx_r = __pyx_t_1; __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_AddTraceback("talib._ta_lib.stream_CDLSHORTLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -71147,36 +73357,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_580stream_MACDFIX(CYTHON_UNUSED PyObje /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_583stream_MAMA(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_593stream_CDLSPINNINGTOP(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_582stream_MAMA, "stream_MAMA(ndarray real, double fastlimit=-4e37, double slowlimit=-4e37)\n\nMAMA(real[, fastlimit=?, slowlimit=?])\n\nMESA Adaptive Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastlimit: 0.5\n slowlimit: 0.05\nOutputs:\n mama\n fama"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_583stream_MAMA = {"stream_MAMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_583stream_MAMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_582stream_MAMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_583stream_MAMA(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_592stream_CDLSPINNINGTOP, "stream_CDLSPINNINGTOP(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSPINNINGTOP(open, high, low, close)\n\nSpinning Top (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_593stream_CDLSPINNINGTOP = {"stream_CDLSPINNINGTOP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_593stream_CDLSPINNINGTOP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_592stream_CDLSPINNINGTOP}; +static PyObject *__pyx_pw_5talib_7_ta_lib_593stream_CDLSPINNINGTOP(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - double __pyx_v_fastlimit; - double __pyx_v_slowlimit; + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_MAMA (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDLSPINNINGTOP (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -71186,75 +73397,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastlimit,&__pyx_mstate_global->__pyx_n_u_slowlimit,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3719, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2596, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2596, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3719, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2596, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3719, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2596, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3719, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2596, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MAMA", 0) < (0)) __PYX_ERR(5, 3719, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MAMA", 0, 1, 3, i); __PYX_ERR(5, 3719, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3719, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3719, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3719, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLSPINNINGTOP", 0) < (0)) __PYX_ERR(5, 2596, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLSPINNINGTOP", 1, 4, 4, i); __PYX_ERR(5, 2596, __pyx_L3_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(5, 3721, __pyx_L3_error) - } else { - __pyx_v_fastlimit = ((double)((double)-4e37)); - } - if (values[2]) { - __pyx_v_slowlimit = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_slowlimit == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 3721, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_slowlimit = ((double)((double)-4e37)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2596, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2596, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2596, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2596, __pyx_L3_error) } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MAMA", 0, 1, 3, __pyx_nargs); __PYX_ERR(5, 3719, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDLSPINNINGTOP", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2596, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_MAMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3721, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_582stream_MAMA(__pyx_self, __pyx_v_real, __pyx_v_fastlimit, __pyx_v_slowlimit); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2598, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2598, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2598, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2598, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_592stream_CDLSPINNINGTOP(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -71273,71 +73479,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_582stream_MAMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, double __pyx_v_fastlimit, double __pyx_v_slowlimit) { +static PyObject *__pyx_pf_5talib_7_ta_lib_592stream_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_real_data; + 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_outmama; - double __pyx_v_outfama; + int __pyx_v_outinteger; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; + npy_intp __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_MAMA", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __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_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3743, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2618, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2620, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_v_outmama = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __pyx_v_outfama = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2622, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_v_retCode = TA_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_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2624, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2626, __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_mstate_global->__pyx_n_u_TA_MAMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3749, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSPINNINGTOP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2629, __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(5, 3750, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2630, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outfama); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3750, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3750, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 3750, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2) != (0)) __PYX_ERR(5, 3750, __pyx_L1_error); + __pyx_r = __pyx_t_1; __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_AddTraceback("talib._ta_lib.stream_CDLSPINNINGTOP", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -71345,38 +73566,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_582stream_MAMA(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_585stream_MAVP(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_595stream_CDLSTALLEDPATTERN(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_584stream_MAVP, "stream_MAVP(ndarray real, ndarray periods, int minperiod=-0x80000000, int maxperiod=-0x80000000, int matype=0)\n\nMAVP(real, periods[, minperiod=?, maxperiod=?, matype=?])\n\nMoving average with variable period (Overlap Studies)\n\nInputs:\n real: (any ndarray)\n periods: (any ndarray)\nParameters:\n minperiod: 2\n maxperiod: 30\n matype: 0 (Simple Moving Average)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_585stream_MAVP = {"stream_MAVP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_585stream_MAVP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_584stream_MAVP}; -static PyObject *__pyx_pw_5talib_7_ta_lib_585stream_MAVP(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_594stream_CDLSTALLEDPATTERN, "stream_CDLSTALLEDPATTERN(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSTALLEDPATTERN(open, high, low, close)\n\nStalled Pattern (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_595stream_CDLSTALLEDPATTERN = {"stream_CDLSTALLEDPATTERN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_595stream_CDLSTALLEDPATTERN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_594stream_CDLSTALLEDPATTERN}; +static PyObject *__pyx_pw_5talib_7_ta_lib_595stream_CDLSTALLEDPATTERN(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - PyArrayObject *__pyx_v_periods = 0; - int __pyx_v_minperiod; - int __pyx_v_maxperiod; - int __pyx_v_matype; + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_MAVP (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDLSTALLEDPATTERN (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -71386,96 +73606,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_periods,&__pyx_mstate_global->__pyx_n_u_minperiod,&__pyx_mstate_global->__pyx_n_u_maxperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3752, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2632, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 3752, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3752, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2632, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3752, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2632, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3752, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2632, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3752, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2632, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MAVP", 0) < (0)) __PYX_ERR(5, 3752, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MAVP", 0, 2, 5, i); __PYX_ERR(5, 3752, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 3752, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3752, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3752, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3752, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3752, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLSTALLEDPATTERN", 0) < (0)) __PYX_ERR(5, 2632, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLSTALLEDPATTERN", 1, 4, 4, i); __PYX_ERR(5, 2632, __pyx_L3_error) } } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - __pyx_v_periods = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_minperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_minperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3754, __pyx_L3_error) - } else { - __pyx_v_minperiod = ((int)((int)-2147483648)); - } - if (values[3]) { - __pyx_v_maxperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_maxperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3754, __pyx_L3_error) - } else { - __pyx_v_maxperiod = ((int)((int)-2147483648)); - } - if (values[4]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3754, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_matype = ((int)((int)0)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2632, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2632, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2632, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2632, __pyx_L3_error) } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MAVP", 0, 2, 5, __pyx_nargs); __PYX_ERR(5, 3752, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDLSTALLEDPATTERN", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2632, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_MAVP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3754, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_periods), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "periods", 0))) __PYX_ERR(5, 3754, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_584stream_MAVP(__pyx_self, __pyx_v_real, __pyx_v_periods, __pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2634, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2634, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2634, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2634, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_594stream_CDLSTALLEDPATTERN(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -71494,14 +73688,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_584stream_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) { +static PyObject *__pyx_pf_5talib_7_ta_lib_594stream_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_real_data; - double *__pyx_v_periods_data; + 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; + int __pyx_v_outinteger; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -71509,37 +73705,53 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_584stream_MAVP(CYTHON_UNUSED PyObject 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_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_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3777, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2654, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_periods)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3779, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2656, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_periods, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_periods_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_periods)); + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2658, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real, __pyx_v_periods); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3781, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2660, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2662, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_outinteger = 0; - __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_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_mstate_global->__pyx_n_u_TA_MAVP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3784, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTALLEDPATTERN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2665, __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(5, 3785, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2666, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -71549,11 +73761,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_584stream_MAVP(CYTHON_UNUSED PyObject /* 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_AddTraceback("talib._ta_lib.stream_CDLSTALLEDPATTERN", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XDECREF((PyObject *)__pyx_v_periods); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -71561,35 +73775,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_584stream_MAVP(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_587stream_MAX(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_597stream_CDLSTICKSANDWICH(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_586stream_MAX, "stream_MAX(ndarray real, int timeperiod=-0x80000000)\n\nMAX(real[, timeperiod=?])\n\nHighest value over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_587stream_MAX = {"stream_MAX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_587stream_MAX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_586stream_MAX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_587stream_MAX(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_596stream_CDLSTICKSANDWICH, "stream_CDLSTICKSANDWICH(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSTICKSANDWICH(open, high, low, close)\n\nStick Sandwich (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_597stream_CDLSTICKSANDWICH = {"stream_CDLSTICKSANDWICH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_597stream_CDLSTICKSANDWICH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_596stream_CDLSTICKSANDWICH}; +static PyObject *__pyx_pw_5talib_7_ta_lib_597stream_CDLSTICKSANDWICH(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_MAX (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDLSTICKSANDWICH (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -71599,62 +73815,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3787, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2668, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2668, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2668, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3787, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2668, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3787, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2668, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MAX", 0) < (0)) __PYX_ERR(5, 3787, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MAX", 0, 1, 2, i); __PYX_ERR(5, 3787, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3787, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3787, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLSTICKSANDWICH", 0) < (0)) __PYX_ERR(5, 2668, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLSTICKSANDWICH", 1, 4, 4, i); __PYX_ERR(5, 2668, __pyx_L3_error) } } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3789, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2668, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2668, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2668, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2668, __pyx_L3_error) } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MAX", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3787, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDLSTICKSANDWICH", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2668, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_MAX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3789, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_586stream_MAX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2670, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2670, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2670, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2670, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_596stream_CDLSTICKSANDWICH(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -71673,41 +73897,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_586stream_MAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_596stream_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_real_data; + 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; + 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_MAX", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __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_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3808, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2690, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2692, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __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 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2694, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2696, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2698, __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_mstate_global->__pyx_n_u_TA_MAX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3813, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTICKSANDWICH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2701, __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(5, 3814, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2702, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -71717,10 +73970,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_586stream_MAX(CYTHON_UNUSED PyObject * /* 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_AddTraceback("talib._ta_lib.stream_CDLSTICKSANDWICH", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -71728,35 +73984,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_586stream_MAX(CYTHON_UNUSED PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_589stream_MAXINDEX(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_599stream_CDLTAKURI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_588stream_MAXINDEX, "stream_MAXINDEX(ndarray real, int timeperiod=-0x80000000)\n\nMAXINDEX(real[, timeperiod=?])\n\nIndex of highest value over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_589stream_MAXINDEX = {"stream_MAXINDEX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_589stream_MAXINDEX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_588stream_MAXINDEX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_589stream_MAXINDEX(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_598stream_CDLTAKURI, "stream_CDLTAKURI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLTAKURI(open, high, low, close)\n\nTakuri (Dragonfly Doji with very long lower shadow) (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_599stream_CDLTAKURI = {"stream_CDLTAKURI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_599stream_CDLTAKURI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_598stream_CDLTAKURI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_599stream_CDLTAKURI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_MAXINDEX (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDLTAKURI (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -71766,62 +74024,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3816, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2704, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2704, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2704, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3816, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2704, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3816, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2704, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MAXINDEX", 0) < (0)) __PYX_ERR(5, 3816, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MAXINDEX", 0, 1, 2, i); __PYX_ERR(5, 3816, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3816, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3816, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLTAKURI", 0) < (0)) __PYX_ERR(5, 2704, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLTAKURI", 1, 4, 4, i); __PYX_ERR(5, 2704, __pyx_L3_error) } } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3818, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2704, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2704, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2704, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2704, __pyx_L3_error) } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MAXINDEX", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3816, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDLTAKURI", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2704, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_MAXINDEX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3818, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_588stream_MAXINDEX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2706, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2706, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2706, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2706, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_598stream_CDLTAKURI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -71840,41 +74106,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_588stream_MAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_598stream_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_real_data; + 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_MAXINDEX", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __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_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3837, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2726, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2728, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2730, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2732, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2734, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; __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_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_mstate_global->__pyx_n_u_TA_MAXINDEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3842, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTAKURI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2737, __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_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3843, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2738, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -71884,10 +74179,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_588stream_MAXINDEX(CYTHON_UNUSED PyObj /* 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_AddTraceback("talib._ta_lib.stream_CDLTAKURI", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -71895,35 +74193,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_588stream_MAXINDEX(CYTHON_UNUSED PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_591stream_MEDPRICE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_601stream_CDLTASUKIGAP(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_590stream_MEDPRICE, "stream_MEDPRICE(ndarray high, ndarray low)\n\nMEDPRICE(high, low)\n\nMedian Price (Price Transform)\n\nInputs:\n prices: ['high', 'low']\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_591stream_MEDPRICE = {"stream_MEDPRICE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_591stream_MEDPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_590stream_MEDPRICE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_591stream_MEDPRICE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_600stream_CDLTASUKIGAP, "stream_CDLTASUKIGAP(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLTASUKIGAP(open, high, low, close)\n\nTasuki Gap (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_601stream_CDLTASUKIGAP = {"stream_CDLTASUKIGAP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_601stream_CDLTASUKIGAP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_600stream_CDLTASUKIGAP}; +static PyObject *__pyx_pw_5talib_7_ta_lib_601stream_CDLTASUKIGAP(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { + PyArrayObject *__pyx_v_open = 0; PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_MEDPRICE (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDLTASUKIGAP (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -71933,54 +74233,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3845, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2740, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2740, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2740, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3845, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2740, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3845, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2740, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MEDPRICE", 0) < (0)) __PYX_ERR(5, 3845, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MEDPRICE", 1, 2, 2, i); __PYX_ERR(5, 3845, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLTASUKIGAP", 0) < (0)) __PYX_ERR(5, 2740, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLTASUKIGAP", 1, 4, 4, i); __PYX_ERR(5, 2740, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3845, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2740, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3845, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2740, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2740, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2740, __pyx_L3_error) } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MEDPRICE", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 3845, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDLTASUKIGAP", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2740, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_MEDPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 3847, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 3847, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_590stream_MEDPRICE(__pyx_self, __pyx_v_high, __pyx_v_low); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2742, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2742, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2742, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2742, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_600stream_CDLTASUKIGAP(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -71999,14 +74315,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_590stream_MEDPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low) { +static PyObject *__pyx_pf_5talib_7_ta_lib_600stream_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; - double __pyx_v_outreal; + int __pyx_v_outinteger; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -72014,37 +74332,53 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_590stream_MEDPRICE(CYTHON_UNUSED PyObj int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_MEDPRICE", 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(5, 2762, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3865, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2764, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3867, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2766, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3869, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2768, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2770, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_outinteger = 0; - __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_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_mstate_global->__pyx_n_u_TA_MEDPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3872, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTASUKIGAP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2773, __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(5, 3873, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2774, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -72054,11 +74388,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_590stream_MEDPRICE(CYTHON_UNUSED PyObj /* 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_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; @@ -72066,38 +74402,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_590stream_MEDPRICE(CYTHON_UNUSED PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_593stream_MFI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_603stream_CDLTHRUSTING(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_592stream_MFI, "stream_MFI(ndarray high, ndarray low, ndarray close, ndarray volume, int timeperiod=-0x80000000)\n\nMFI(high, low, close, volume[, timeperiod=?])\n\nMoney Flow Index (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low', 'close', 'volume']\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_593stream_MFI = {"stream_MFI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_593stream_MFI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_592stream_MFI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_593stream_MFI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_602stream_CDLTHRUSTING, "stream_CDLTHRUSTING(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLTHRUSTING(open, high, low, close)\n\nThrusting Pattern (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_603stream_CDLTHRUSTING = {"stream_CDLTHRUSTING", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_603stream_CDLTHRUSTING, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_602stream_CDLTHRUSTING}; +static PyObject *__pyx_pw_5talib_7_ta_lib_603stream_CDLTHRUSTING(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { + PyArrayObject *__pyx_v_open = 0; PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; - PyArrayObject *__pyx_v_volume = 0; - int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_MFI (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDLTHRUSTING (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -72107,86 +74442,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3875, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2776, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 3875, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3875, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2776, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3875, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2776, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3875, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2776, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3875, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2776, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MFI", 0) < (0)) __PYX_ERR(5, 3875, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLTHRUSTING", 0) < (0)) __PYX_ERR(5, 2776, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MFI", 0, 4, 5, i); __PYX_ERR(5, 3875, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 3875, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3875, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3875, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3875, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3875, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLTHRUSTING", 1, 4, 4, i); __PYX_ERR(5, 2776, __pyx_L3_error) } } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - __pyx_v_volume = ((PyArrayObject *)values[3]); - if (values[4]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3877, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2776, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2776, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2776, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2776, __pyx_L3_error) } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MFI", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 3875, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDLTHRUSTING", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2776, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_MFI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 3877, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 3877, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 3877, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 3877, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_592stream_MFI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2778, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2778, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2778, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2778, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_602stream_CDLTHRUSTING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -72205,16 +74524,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_592stream_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) { +static PyObject *__pyx_pf_5talib_7_ta_lib_602stream_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; - double *__pyx_v_volume_data; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - double __pyx_v_outreal; + int __pyx_v_outinteger; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -72222,53 +74541,53 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_592stream_MFI(CYTHON_UNUSED PyObject * int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_MFI", 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_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(5, 3899, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2798, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2800, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3901, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2802, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3903, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2804, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3905, __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_f_5numpy_7ndarray_4data_data(__pyx_v_volume)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3907, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2806, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_outinteger = 0; - __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_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_mstate_global->__pyx_n_u_TA_MFI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3910, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTHRUSTING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2809, __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(5, 3911, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2810, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -72278,13 +74597,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_592stream_MFI(CYTHON_UNUSED PyObject * /* 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_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_XDECREF((PyObject *)__pyx_v_volume); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -72292,35 +74611,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_592stream_MFI(CYTHON_UNUSED PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_595stream_MIDPOINT(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_605stream_CDLTRISTAR(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_594stream_MIDPOINT, "stream_MIDPOINT(ndarray real, int timeperiod=-0x80000000)\n\nMIDPOINT(real[, timeperiod=?])\n\nMidPoint over period (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_595stream_MIDPOINT = {"stream_MIDPOINT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_595stream_MIDPOINT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_594stream_MIDPOINT}; -static PyObject *__pyx_pw_5talib_7_ta_lib_595stream_MIDPOINT(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_604stream_CDLTRISTAR, "stream_CDLTRISTAR(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLTRISTAR(open, high, low, close)\n\nTristar Pattern (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_605stream_CDLTRISTAR = {"stream_CDLTRISTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_605stream_CDLTRISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_604stream_CDLTRISTAR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_605stream_CDLTRISTAR(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_MIDPOINT (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDLTRISTAR (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -72330,62 +74651,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3913, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2812, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2812, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2812, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3913, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2812, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3913, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2812, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MIDPOINT", 0) < (0)) __PYX_ERR(5, 3913, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MIDPOINT", 0, 1, 2, i); __PYX_ERR(5, 3913, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3913, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3913, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLTRISTAR", 0) < (0)) __PYX_ERR(5, 2812, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLTRISTAR", 1, 4, 4, i); __PYX_ERR(5, 2812, __pyx_L3_error) } } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3915, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2812, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2812, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2812, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2812, __pyx_L3_error) } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MIDPOINT", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3913, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDLTRISTAR", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2812, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_MIDPOINT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3915, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_594stream_MIDPOINT(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2814, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2814, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2814, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2814, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_604stream_CDLTRISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -72404,41 +74733,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_594stream_MIDPOINT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_604stream_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_real_data; + 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; + 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_MIDPOINT", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __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_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3934, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2834, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2836, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __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 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2838, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2840, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2842, __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_mstate_global->__pyx_n_u_TA_MIDPOINT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3939, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTRISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2845, __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(5, 3940, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2846, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -72448,10 +74806,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_594stream_MIDPOINT(CYTHON_UNUSED PyObj /* 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_AddTraceback("talib._ta_lib.stream_CDLTRISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -72459,36 +74820,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_594stream_MIDPOINT(CYTHON_UNUSED PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_597stream_MIDPRICE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_607stream_CDLUNIQUE3RIVER(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_596stream_MIDPRICE, "stream_MIDPRICE(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nMIDPRICE(high, low[, timeperiod=?])\n\nMidpoint Price over period (Overlap Studies)\n\nInputs:\n prices: ['high', 'low']\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_597stream_MIDPRICE = {"stream_MIDPRICE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_597stream_MIDPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_596stream_MIDPRICE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_597stream_MIDPRICE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_606stream_CDLUNIQUE3RIVER, "stream_CDLUNIQUE3RIVER(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLUNIQUE3RIVER(open, high, low, close)\n\nUnique 3 River (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_607stream_CDLUNIQUE3RIVER = {"stream_CDLUNIQUE3RIVER", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_607stream_CDLUNIQUE3RIVER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_606stream_CDLUNIQUE3RIVER}; +static PyObject *__pyx_pw_5talib_7_ta_lib_607stream_CDLUNIQUE3RIVER(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { + PyArrayObject *__pyx_v_open = 0; PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; - int __pyx_v_timeperiod; + PyArrayObject *__pyx_v_close = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_MIDPRICE (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDLUNIQUE3RIVER (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -72498,70 +74860,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3942, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2848, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2848, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3942, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2848, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3942, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2848, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3942, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2848, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MIDPRICE", 0) < (0)) __PYX_ERR(5, 3942, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MIDPRICE", 0, 2, 3, i); __PYX_ERR(5, 3942, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3942, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3942, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3942, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLUNIQUE3RIVER", 0) < (0)) __PYX_ERR(5, 2848, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLUNIQUE3RIVER", 1, 4, 4, i); __PYX_ERR(5, 2848, __pyx_L3_error) } } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3944, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2848, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2848, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2848, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2848, __pyx_L3_error) } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MIDPRICE", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 3942, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDLUNIQUE3RIVER", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2848, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_MIDPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 3944, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 3944, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_596stream_MIDPRICE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2850, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2850, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2850, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2850, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_606stream_CDLUNIQUE3RIVER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -72580,14 +74942,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_596stream_MIDPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_606stream_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; - double __pyx_v_outreal; + int __pyx_v_outinteger; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -72595,37 +74959,53 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_596stream_MIDPRICE(CYTHON_UNUSED PyObj int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_MIDPRICE", 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_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3964, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2870, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2872, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3966, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2874, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3968, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2876, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_v_retCode = TA_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_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2878, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3971, __pyx_L1_error) + __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_mstate_global->__pyx_n_u_TA_CDLUNIQUE3RIVER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2881, __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(5, 3972, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2882, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -72635,11 +75015,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_596stream_MIDPRICE(CYTHON_UNUSED PyObj /* 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_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; @@ -72647,35 +75029,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_596stream_MIDPRICE(CYTHON_UNUSED PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_599stream_MIN(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_609stream_CDLUPSIDEGAP2CROWS(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_598stream_MIN, "stream_MIN(ndarray real, int timeperiod=-0x80000000)\n\nMIN(real[, timeperiod=?])\n\nLowest value over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_599stream_MIN = {"stream_MIN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_599stream_MIN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_598stream_MIN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_599stream_MIN(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_608stream_CDLUPSIDEGAP2CROWS, "stream_CDLUPSIDEGAP2CROWS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLUPSIDEGAP2CROWS(open, high, low, close)\n\nUpside Gap Two Crows (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_609stream_CDLUPSIDEGAP2CROWS = {"stream_CDLUPSIDEGAP2CROWS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_609stream_CDLUPSIDEGAP2CROWS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_608stream_CDLUPSIDEGAP2CROWS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_609stream_CDLUPSIDEGAP2CROWS(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_MIN (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDLUPSIDEGAP2CROWS (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -72685,62 +75069,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3974, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2884, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2884, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2884, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3974, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2884, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3974, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2884, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MIN", 0) < (0)) __PYX_ERR(5, 3974, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MIN", 0, 1, 2, i); __PYX_ERR(5, 3974, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3974, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3974, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLUPSIDEGAP2CROWS", 0) < (0)) __PYX_ERR(5, 2884, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLUPSIDEGAP2CROWS", 1, 4, 4, i); __PYX_ERR(5, 2884, __pyx_L3_error) } } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3976, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2884, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2884, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2884, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2884, __pyx_L3_error) } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MIN", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3974, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDLUPSIDEGAP2CROWS", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2884, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_MIN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3976, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_598stream_MIN(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2886, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2886, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2886, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2886, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_608stream_CDLUPSIDEGAP2CROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -72759,41 +75151,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_598stream_MIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_608stream_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_real_data; + 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; + 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_MIN", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __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_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3995, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2906, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2908, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __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 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2910, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2912, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4000, __pyx_L1_error) + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2914, __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_mstate_global->__pyx_n_u_TA_CDLUPSIDEGAP2CROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2917, __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(5, 4001, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2918, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -72803,10 +75224,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_598stream_MIN(CYTHON_UNUSED PyObject * /* 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_AddTraceback("talib._ta_lib.stream_CDLUPSIDEGAP2CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -72814,35 +75238,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_598stream_MIN(CYTHON_UNUSED PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_601stream_MININDEX(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_611stream_CDLXSIDEGAP3METHODS(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_600stream_MININDEX, "stream_MININDEX(ndarray real, int timeperiod=-0x80000000)\n\nMININDEX(real[, timeperiod=?])\n\nIndex of lowest value over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_601stream_MININDEX = {"stream_MININDEX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_601stream_MININDEX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_600stream_MININDEX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_601stream_MININDEX(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_610stream_CDLXSIDEGAP3METHODS, "stream_CDLXSIDEGAP3METHODS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLXSIDEGAP3METHODS(open, high, low, close)\n\nUpside/Downside Gap Three Methods (Pattern Recognition)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_611stream_CDLXSIDEGAP3METHODS = {"stream_CDLXSIDEGAP3METHODS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_611stream_CDLXSIDEGAP3METHODS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_610stream_CDLXSIDEGAP3METHODS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_611stream_CDLXSIDEGAP3METHODS(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_MININDEX (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CDLXSIDEGAP3METHODS (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -72852,62 +75278,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4003, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2920, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2920, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2920, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4003, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2920, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4003, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2920, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MININDEX", 0) < (0)) __PYX_ERR(5, 4003, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MININDEX", 0, 1, 2, i); __PYX_ERR(5, 4003, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4003, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4003, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLXSIDEGAP3METHODS", 0) < (0)) __PYX_ERR(5, 2920, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLXSIDEGAP3METHODS", 1, 4, 4, i); __PYX_ERR(5, 2920, __pyx_L3_error) } } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4005, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2920, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2920, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2920, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2920, __pyx_L3_error) } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MININDEX", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4003, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CDLXSIDEGAP3METHODS", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2920, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_MININDEX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4005, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_600stream_MININDEX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2922, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2922, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2922, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2922, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_610stream_CDLXSIDEGAP3METHODS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -72926,41 +75360,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_600stream_MININDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_610stream_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_real_data; + 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_MININDEX", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __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_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4024, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2942, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2944, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2946, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2948, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2950, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; __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_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_mstate_global->__pyx_n_u_TA_MININDEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4029, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLXSIDEGAP3METHODS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2953, __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_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4030, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2954, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -72970,10 +75433,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_600stream_MININDEX(CYTHON_UNUSED PyObj /* 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_AddTraceback("talib._ta_lib.stream_CDLXSIDEGAP3METHODS", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -72981,16 +75447,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_600stream_MININDEX(CYTHON_UNUSED PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_603stream_MINMAX(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_613stream_CEIL(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_602stream_MINMAX, "stream_MINMAX(ndarray real, int timeperiod=-0x80000000)\n\nMINMAX(real[, timeperiod=?])\n\nLowest and highest values over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n min\n max"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_603stream_MINMAX = {"stream_MINMAX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_603stream_MINMAX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_602stream_MINMAX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_603stream_MINMAX(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_612stream_CEIL, "stream_CEIL(ndarray real)\n\nCEIL(real)\n\nVector Ceil (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_613stream_CEIL = {"stream_CEIL", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_613stream_CEIL, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_612stream_CEIL}; +static PyObject *__pyx_pw_5talib_7_ta_lib_613stream_CEIL(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -72998,18 +75464,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_MINMAX (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CEIL (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -73019,62 +75484,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4032, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2956, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4032, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4032, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2956, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MINMAX", 0) < (0)) __PYX_ERR(5, 4032, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CEIL", 0) < (0)) __PYX_ERR(5, 2956, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MINMAX", 0, 1, 2, i); __PYX_ERR(5, 4032, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CEIL", 1, 1, 1, i); __PYX_ERR(5, 2956, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4032, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4032, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2956, __pyx_L3_error) } __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4034, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MINMAX", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4032, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CEIL", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 2956, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_MINMAX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.stream_CEIL", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4034, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_602stream_MINMAX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 2958, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_612stream_CEIL(__pyx_self, __pyx_v_real); /* function exit code */ goto __pyx_L0; @@ -73093,26 +75542,23 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_602stream_MINMAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_612stream_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_outmin; - double __pyx_v_outmax; + double __pyx_v_outreal; 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_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(5, 4055, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2975, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -73121,40 +75567,26 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_602stream_MINMAX(CYTHON_UNUSED PyObjec __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_v_outmin = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_outmax = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_outreal = __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_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_mstate_global->__pyx_n_u_TA_MINMAX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4061, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CEIL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2980, __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(5, 4062, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2981, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outmax); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4062, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4062, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 4062, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2) != (0)) __PYX_ERR(5, 4062, __pyx_L1_error); + __pyx_r = __pyx_t_1; __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_AddTraceback("talib._ta_lib.stream_CEIL", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_real); @@ -73165,35 +75597,38 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_602stream_MINMAX(CYTHON_UNUSED PyObjec /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_605stream_MINMAXINDEX(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_615stream_CMF(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_604stream_MINMAXINDEX, "stream_MINMAXINDEX(ndarray real, int timeperiod=-0x80000000)\n\nMINMAXINDEX(real[, timeperiod=?])\n\nIndexes of lowest and highest values over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n minidx\n maxidx"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_605stream_MINMAXINDEX = {"stream_MINMAXINDEX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_605stream_MINMAXINDEX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_604stream_MINMAXINDEX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_605stream_MINMAXINDEX(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_614stream_CMF, "stream_CMF(ndarray high, ndarray low, ndarray close, ndarray volume, int timeperiod=-0x80000000)\n\nCMF(high, low, close, volume[, timeperiod=?])\n\nChaikin Money Flow (Volume Indicators)\n\nInputs:\n prices: ['high', 'low', 'close', 'volume']\nParameters:\n timeperiod: 20\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_615stream_CMF = {"stream_CMF", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_615stream_CMF, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_614stream_CMF}; +static PyObject *__pyx_pw_5talib_7_ta_lib_615stream_CMF(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + PyArrayObject *__pyx_v_volume = 0; int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_MINMAXINDEX (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CMF (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -73203,62 +75638,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4064, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2983, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 2983, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2983, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2983, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4064, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2983, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4064, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2983, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MINMAXINDEX", 0) < (0)) __PYX_ERR(5, 4064, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MINMAXINDEX", 0, 1, 2, i); __PYX_ERR(5, 4064, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CMF", 0) < (0)) __PYX_ERR(5, 2983, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CMF", 0, 4, 5, i); __PYX_ERR(5, 2983, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4064, __pyx_L3_error) + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 2983, __pyx_L3_error) CYTHON_FALLTHROUGH; - case 1: + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2983, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2983, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2983, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4064, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2983, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4066, __pyx_L3_error) + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + __pyx_v_volume = ((PyArrayObject *)values[3]); + if (values[4]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2985, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MINMAXINDEX", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4064, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CMF", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 2983, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_MINMAXINDEX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.stream_CMF", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4066, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_604stream_MINMAXINDEX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2985, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2985, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2985, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 2985, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_614stream_CMF(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -73277,71 +75736,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_604stream_MINMAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_614stream_CMF(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_real_data; + 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; - int __pyx_v_outminidx; - int __pyx_v_outmaxidx; + double __pyx_v_outreal; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; + npy_intp __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_MINMAXINDEX", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("stream_CMF", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_INCREF((PyObject *)__pyx_v_volume); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4087, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3007, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3009, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_v_outminidx = 0; + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - __pyx_v_outmaxidx = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3011, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_v_retCode = TA_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_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3013, __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_f_5numpy_7ndarray_4data_data(__pyx_v_volume)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3015, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + __pyx_v_retCode = TA_CMF((((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_mstate_global->__pyx_n_u_TA_MINMAXINDEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4093, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMF, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3018, __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_PyLong_From_int(__pyx_v_outminidx); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4094, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3019, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outmaxidx); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4094, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4094, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 4094, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2) != (0)) __PYX_ERR(5, 4094, __pyx_L1_error); + __pyx_r = __pyx_t_1; __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_AddTraceback("talib._ta_lib.stream_CMF", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF((PyObject *)__pyx_v_volume); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -73349,37 +75823,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_604stream_MINMAXINDEX(CYTHON_UNUSED Py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_607stream_MINUS_DI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_617stream_CMO(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_606stream_MINUS_DI, "stream_MINUS_DI(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nMINUS_DI(high, low, close[, timeperiod=?])\n\nMinus Directional Indicator (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_607stream_MINUS_DI = {"stream_MINUS_DI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_607stream_MINUS_DI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_606stream_MINUS_DI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_607stream_MINUS_DI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_616stream_CMO, "stream_CMO(ndarray real, int timeperiod=-0x80000000)\n\nCMO(real[, timeperiod=?])\n\nChande Momentum Oscillator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_617stream_CMO = {"stream_CMO", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_617stream_CMO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_616stream_CMO}; +static PyObject *__pyx_pw_5talib_7_ta_lib_617stream_CMO(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + PyArrayObject *__pyx_v_real = 0; int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_MINUS_DI (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CMO (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -73389,78 +75861,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4096, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3021, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4096, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4096, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4096, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3021, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4096, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3021, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MINUS_DI", 0) < (0)) __PYX_ERR(5, 4096, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MINUS_DI", 0, 3, 4, i); __PYX_ERR(5, 4096, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CMO", 0) < (0)) __PYX_ERR(5, 3021, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CMO", 0, 1, 2, i); __PYX_ERR(5, 3021, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4096, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4096, __pyx_L3_error) + case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4096, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3021, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4096, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3021, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4098, __pyx_L3_error) + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3023, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MINUS_DI", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 4096, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CMO", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3021, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_MINUS_DI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 4098, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 4098, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 4098, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_606stream_MINUS_DI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3023, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_616stream_CMO(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -73479,61 +75935,41 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_606stream_MINUS_DI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_616stream_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_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; + 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; - 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(5, 4119, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4121, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + __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_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4123, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3042, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4125, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); __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_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_mstate_global->__pyx_n_u_TA_MINUS_DI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4128, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3047, __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(5, 4129, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3048, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -73543,12 +75979,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_606stream_MINUS_DI(CYTHON_UNUSED PyObj /* 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_AddTraceback("talib._ta_lib.stream_CMO", __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_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -73556,36 +75990,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_606stream_MINUS_DI(CYTHON_UNUSED PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_609stream_MINUS_DM(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_619stream_CMOU(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_608stream_MINUS_DM, "stream_MINUS_DM(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nMINUS_DM(high, low[, timeperiod=?])\n\nMinus Directional Movement (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low']\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_609stream_MINUS_DM = {"stream_MINUS_DM", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_609stream_MINUS_DM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_608stream_MINUS_DM}; -static PyObject *__pyx_pw_5talib_7_ta_lib_609stream_MINUS_DM(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_618stream_CMOU, "stream_CMOU(ndarray real, int timeperiod=-0x80000000)\n\nCMOU(real[, timeperiod=?])\n\nChande Momentum Oscillator (Unsmoothed) (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_619stream_CMOU = {"stream_CMOU", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_619stream_CMOU, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_618stream_CMOU}; +static PyObject *__pyx_pw_5talib_7_ta_lib_619stream_CMOU(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_real = 0; int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_MINUS_DM (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CMOU (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -73595,70 +76028,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4131, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3050, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4131, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4131, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3050, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4131, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3050, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MINUS_DM", 0) < (0)) __PYX_ERR(5, 4131, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MINUS_DM", 0, 2, 3, i); __PYX_ERR(5, 4131, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CMOU", 0) < (0)) __PYX_ERR(5, 3050, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CMOU", 0, 1, 2, i); __PYX_ERR(5, 3050, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4131, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4131, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3050, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4131, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3050, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4133, __pyx_L3_error) + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3052, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MINUS_DM", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 4131, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CMOU", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3050, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_MINUS_DM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.stream_CMOU", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 4133, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 4133, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_608stream_MINUS_DM(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3052, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_618stream_CMOU(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -73677,52 +76102,41 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_608stream_MINUS_DM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_618stream_CMOU(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_high_data; - double *__pyx_v_low_data; + 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; - 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(5, 4153, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + __Pyx_RefNannySetupContext("stream_CMOU", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4155, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3071, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4157, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); __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_v_retCode = TA_CMOU((((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_mstate_global->__pyx_n_u_TA_MINUS_DM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4160, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMOU, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3076, __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(5, 4161, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3077, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -73732,11 +76146,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_608stream_MINUS_DM(CYTHON_UNUSED PyObj /* 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_AddTraceback("talib._ta_lib.stream_CMOU", __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_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -73744,16 +76157,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_608stream_MINUS_DM(CYTHON_UNUSED PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_611stream_MOM(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_621stream_COPPOCK(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_610stream_MOM, "stream_MOM(ndarray real, int timeperiod=-0x80000000)\n\nMOM(real[, timeperiod=?])\n\nMomentum (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_611stream_MOM = {"stream_MOM", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_611stream_MOM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_610stream_MOM}; -static PyObject *__pyx_pw_5talib_7_ta_lib_611stream_MOM(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_620stream_COPPOCK, "stream_COPPOCK(ndarray real, int wmaperiod=-0x80000000, int roc1period=-0x80000000, int roc2period=-0x80000000)\n\nCOPPOCK(real[, wmaperiod=?, roc1period=?, roc2period=?])\n\nCoppock Curve (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n wmaperiod: 10\n roc1period: 11\n roc2period: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_621stream_COPPOCK = {"stream_COPPOCK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_621stream_COPPOCK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_620stream_COPPOCK}; +static PyObject *__pyx_pw_5talib_7_ta_lib_621stream_COPPOCK(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -73761,18 +76174,20 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + int __pyx_v_wmaperiod; + int __pyx_v_roc1period; + int __pyx_v_roc2period; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_MOM (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_COPPOCK (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -73782,62 +76197,88 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_wmaperiod,&__pyx_mstate_global->__pyx_n_u_roc1period,&__pyx_mstate_global->__pyx_n_u_roc2period,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4163, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3079, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3079, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3079, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4163, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3079, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4163, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3079, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MOM", 0) < (0)) __PYX_ERR(5, 4163, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_COPPOCK", 0) < (0)) __PYX_ERR(5, 3079, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MOM", 0, 1, 2, i); __PYX_ERR(5, 4163, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_COPPOCK", 0, 1, 4, i); __PYX_ERR(5, 3079, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3079, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3079, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4163, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3079, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4163, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3079, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4165, __pyx_L3_error) + __pyx_v_wmaperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_wmaperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3081, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + __pyx_v_wmaperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_roc1period = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_roc1period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3081, __pyx_L3_error) + } else { + __pyx_v_roc1period = ((int)((int)-2147483648)); + } + if (values[3]) { + __pyx_v_roc2period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_roc2period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3081, __pyx_L3_error) + } else { + __pyx_v_roc2period = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MOM", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4163, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_COPPOCK", 0, 1, 4, __pyx_nargs); __PYX_ERR(5, 3079, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_MOM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.stream_COPPOCK", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4165, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_610stream_MOM(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3081, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_620stream_COPPOCK(__pyx_self, __pyx_v_real, __pyx_v_wmaperiod, __pyx_v_roc1period, __pyx_v_roc2period); /* function exit code */ goto __pyx_L0; @@ -73856,7 +76297,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_610stream_MOM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_620stream_COPPOCK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_wmaperiod, int __pyx_v_roc1period, int __pyx_v_roc2period) { npy_intp __pyx_v_length; TA_RetCode __pyx_v_retCode; double *__pyx_v_real_data; @@ -73869,10 +76310,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_610stream_MOM(CYTHON_UNUSED PyObject * int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_MOM", 0); + __Pyx_RefNannySetupContext("stream_COPPOCK", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4184, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3102, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -73883,14 +76324,14 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_610stream_MOM(CYTHON_UNUSED PyObject * __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_v_retCode = TA_COPPOCK((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_wmaperiod, __pyx_v_roc1period, __pyx_v_roc2period, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MOM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4189, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COPPOCK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3107, __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(5, 4190, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -73900,7 +76341,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_610stream_MOM(CYTHON_UNUSED PyObject * /* 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_AddTraceback("talib._ta_lib.stream_COPPOCK", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_real); @@ -73911,16 +76352,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_610stream_MOM(CYTHON_UNUSED PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_613stream_MULT(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_623stream_CORREL(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_612stream_MULT, "stream_MULT(ndarray real0, ndarray real1)\n\nMULT(real0, real1)\n\nVector Arithmetic Mult (Math Operators)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_613stream_MULT = {"stream_MULT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_613stream_MULT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_612stream_MULT}; -static PyObject *__pyx_pw_5talib_7_ta_lib_613stream_MULT(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_622stream_CORREL, "stream_CORREL(ndarray real0, ndarray real1, int timeperiod=-0x80000000)\n\nCORREL(real0, real1[, timeperiod=?])\n\nPearson's Correlation Coefficient (r) (Statistic Functions)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_623stream_CORREL = {"stream_CORREL", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_623stream_CORREL, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_622stream_CORREL}; +static PyObject *__pyx_pw_5talib_7_ta_lib_623stream_CORREL(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -73929,17 +76370,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds ) { PyArrayObject *__pyx_v_real0 = 0; PyArrayObject *__pyx_v_real1 = 0; + int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_MULT (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CORREL (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -73949,54 +76391,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4192, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3110, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3110, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4192, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3110, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4192, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3110, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MULT", 0) < (0)) __PYX_ERR(5, 4192, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CORREL", 0) < (0)) __PYX_ERR(5, 3110, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MULT", 1, 2, 2, i); __PYX_ERR(5, 4192, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CORREL", 0, 2, 3, i); __PYX_ERR(5, 3110, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4192, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4192, __pyx_L3_error) + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3110, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3110, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3110, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_real0 = ((PyArrayObject *)values[0]); __pyx_v_real1 = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3112, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MULT", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 4192, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CORREL", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 3110, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_MULT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(5, 4194, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(5, 4194, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_612stream_MULT(__pyx_self, __pyx_v_real0, __pyx_v_real1); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(5, 3112, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(5, 3112, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_622stream_CORREL(__pyx_self, __pyx_v_real0, __pyx_v_real1, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -74015,7 +76473,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_612stream_MULT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1) { +static PyObject *__pyx_pf_5talib_7_ta_lib_622stream_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; @@ -74030,37 +76488,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_612stream_MULT(CYTHON_UNUSED PyObject int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_MULT", 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(5, 4213, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3133, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real0)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4215, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3135, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real1)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4217, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3137, __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_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_mstate_global->__pyx_n_u_TA_MULT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4220, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CORREL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3140, __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(5, 4221, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -74070,7 +76528,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_612stream_MULT(CYTHON_UNUSED PyObject /* 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_AddTraceback("talib._ta_lib.stream_CORREL", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_real0); @@ -74082,37 +76540,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_612stream_MULT(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_615stream_NATR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_625stream_COS(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_614stream_NATR, "stream_NATR(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nNATR(high, low, close[, timeperiod=?])\n\nNormalized Average True Range (Volatility Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_615stream_NATR = {"stream_NATR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_615stream_NATR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_614stream_NATR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_615stream_NATR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_624stream_COS, "stream_COS(ndarray real)\n\nCOS(real)\n\nVector Trigonometric Cos (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_625stream_COS = {"stream_COS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_625stream_COS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_624stream_COS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_625stream_COS(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; + PyArrayObject *__pyx_v_real = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_NATR (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_COS (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -74122,78 +76577,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4223, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3143, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4223, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4223, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4223, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4223, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3143, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_NATR", 0) < (0)) __PYX_ERR(5, 4223, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_NATR", 0, 3, 4, i); __PYX_ERR(5, 4223, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4223, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4223, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4223, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4223, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_COS", 0) < (0)) __PYX_ERR(5, 3143, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_COS", 1, 1, 1, i); __PYX_ERR(5, 3143, __pyx_L3_error) } } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4225, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3143, __pyx_L3_error) } + __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_NATR", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 4223, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_COS", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3143, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_NATR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.stream_COS", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 4225, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 4225, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 4225, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_614stream_NATR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3145, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_624stream_COS(__pyx_self, __pyx_v_real); /* function exit code */ goto __pyx_L0; @@ -74212,61 +76635,41 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_614stream_NATR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_624stream_COS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { 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_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; - 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(5, 4246, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4248, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + __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_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4250, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4252, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); __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_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_mstate_global->__pyx_n_u_TA_NATR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4255, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3167, __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(5, 4256, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3168, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -74276,12 +76679,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_614stream_NATR(CYTHON_UNUSED PyObject /* 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_AddTraceback("talib._ta_lib.stream_COS", __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_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -74289,16 +76690,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_614stream_NATR(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_617stream_OBV(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_627stream_COSH(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_616stream_OBV, "stream_OBV(ndarray real, ndarray volume)\n\nOBV(real, volume)\n\nOn Balance Volume (Volume Indicators)\n\nInputs:\n real: (any ndarray)\n prices: ['volume']\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_617stream_OBV = {"stream_OBV", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_617stream_OBV, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_616stream_OBV}; -static PyObject *__pyx_pw_5talib_7_ta_lib_617stream_OBV(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_626stream_COSH, "stream_COSH(ndarray real)\n\nCOSH(real)\n\nVector Trigonometric Cosh (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_627stream_COSH = {"stream_COSH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_627stream_COSH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_626stream_COSH}; +static PyObject *__pyx_pw_5talib_7_ta_lib_627stream_COSH(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -74306,18 +76707,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyArrayObject *__pyx_v_real = 0; - PyArrayObject *__pyx_v_volume = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_OBV (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_COSH (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -74327,54 +76727,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_volume,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4258, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3170, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4258, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4258, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3170, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_OBV", 0) < (0)) __PYX_ERR(5, 4258, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_OBV", 1, 2, 2, i); __PYX_ERR(5, 4258, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_COSH", 0) < (0)) __PYX_ERR(5, 3170, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_COSH", 1, 1, 1, i); __PYX_ERR(5, 3170, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4258, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4258, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3170, __pyx_L3_error) } __pyx_v_real = ((PyArrayObject *)values[0]); - __pyx_v_volume = ((PyArrayObject *)values[1]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_OBV", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 4258, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_COSH", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3170, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_OBV", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.stream_COSH", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4260, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 4260, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_616stream_OBV(__pyx_self, __pyx_v_real, __pyx_v_volume); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3172, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_626stream_COSH(__pyx_self, __pyx_v_real); /* function exit code */ goto __pyx_L0; @@ -74393,52 +76785,41 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_616stream_OBV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_volume) { +static PyObject *__pyx_pf_5talib_7_ta_lib_626stream_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; - 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_RefNannySetupContext("stream_COSH", 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(5, 4279, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3189, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4281, __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_f_5numpy_7ndarray_4data_data(__pyx_v_volume)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4283, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); __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_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_mstate_global->__pyx_n_u_TA_OBV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4286, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COSH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3194, __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(5, 4287, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3195, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -74448,11 +76829,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_616stream_OBV(CYTHON_UNUSED PyObject * /* 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_AddTraceback("talib._ta_lib.stream_COSH", __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; @@ -74460,37 +76840,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_616stream_OBV(CYTHON_UNUSED PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_619stream_PLUS_DI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_629stream_CUMSUM(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_618stream_PLUS_DI, "stream_PLUS_DI(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nPLUS_DI(high, low, close[, timeperiod=?])\n\nPlus Directional Indicator (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_619stream_PLUS_DI = {"stream_PLUS_DI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_619stream_PLUS_DI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_618stream_PLUS_DI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_619stream_PLUS_DI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_628stream_CUMSUM, "stream_CUMSUM(ndarray real)\n\nCUMSUM(real)\n\nCumulative Sum (Math Operators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_629stream_CUMSUM = {"stream_CUMSUM", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_629stream_CUMSUM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_628stream_CUMSUM}; +static PyObject *__pyx_pw_5talib_7_ta_lib_629stream_CUMSUM(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; + PyArrayObject *__pyx_v_real = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_PLUS_DI (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CUMSUM (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -74500,78 +76877,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4289, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3197, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4289, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4289, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4289, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4289, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3197, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_PLUS_DI", 0) < (0)) __PYX_ERR(5, 4289, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_PLUS_DI", 0, 3, 4, i); __PYX_ERR(5, 4289, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4289, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4289, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4289, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4289, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CUMSUM", 0) < (0)) __PYX_ERR(5, 3197, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CUMSUM", 1, 1, 1, i); __PYX_ERR(5, 3197, __pyx_L3_error) } } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4291, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3197, __pyx_L3_error) } + __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_PLUS_DI", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 4289, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CUMSUM", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3197, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_PLUS_DI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.stream_CUMSUM", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 4291, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 4291, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 4291, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_618stream_PLUS_DI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3199, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_628stream_CUMSUM(__pyx_self, __pyx_v_real); /* function exit code */ goto __pyx_L0; @@ -74590,61 +76935,41 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_618stream_PLUS_DI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_628stream_CUMSUM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { 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_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; - 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(5, 4312, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4314, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + __Pyx_RefNannySetupContext("stream_CUMSUM", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4316, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3216, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4318, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); __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_v_retCode = TA_CUMSUM((((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_mstate_global->__pyx_n_u_TA_PLUS_DI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4321, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CUMSUM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3221, __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(5, 4322, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3222, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -74654,12 +76979,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_618stream_PLUS_DI(CYTHON_UNUSED PyObje /* 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_AddTraceback("talib._ta_lib.stream_CUMSUM", __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_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -74667,16 +76990,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_618stream_PLUS_DI(CYTHON_UNUSED PyObje /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_621stream_PLUS_DM(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_631stream_CVI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_620stream_PLUS_DM, "stream_PLUS_DM(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nPLUS_DM(high, low[, timeperiod=?])\n\nPlus Directional Movement (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low']\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_621stream_PLUS_DM = {"stream_PLUS_DM", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_621stream_PLUS_DM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_620stream_PLUS_DM}; -static PyObject *__pyx_pw_5talib_7_ta_lib_621stream_PLUS_DM(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_630stream_CVI, "stream_CVI(ndarray high, ndarray low, int timeperiod=-0x80000000, int rocperiod=-0x80000000)\n\nCVI(high, low[, timeperiod=?, rocperiod=?])\n\nChaikin's Volatility (Volatility Indicators)\n\nInputs:\n prices: ['high', 'low']\nParameters:\n timeperiod: 10\n rocperiod: 10\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_631stream_CVI = {"stream_CVI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_631stream_CVI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_630stream_CVI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_631stream_CVI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -74686,17 +77009,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; int __pyx_v_timeperiod; + int __pyx_v_rocperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_PLUS_DM (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_CVI (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -74706,42 +77030,50 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_rocperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4324, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3224, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3224, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4324, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3224, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4324, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3224, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4324, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3224, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_PLUS_DM", 0) < (0)) __PYX_ERR(5, 4324, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CVI", 0) < (0)) __PYX_ERR(5, 3224, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_PLUS_DM", 0, 2, 3, i); __PYX_ERR(5, 4324, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CVI", 0, 2, 4, i); __PYX_ERR(5, 3224, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3224, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4324, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3224, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4324, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3224, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4324, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3224, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -74749,27 +77081,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_high = ((PyArrayObject *)values[0]); __pyx_v_low = ((PyArrayObject *)values[1]); if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4326, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3226, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } + if (values[3]) { + __pyx_v_rocperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_rocperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3226, __pyx_L3_error) + } else { + __pyx_v_rocperiod = ((int)((int)-2147483648)); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_PLUS_DM", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 4324, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_CVI", 0, 2, 4, __pyx_nargs); __PYX_ERR(5, 3224, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_PLUS_DM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.stream_CVI", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 4326, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 4326, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_620stream_PLUS_DM(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 3226, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 3226, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_630stream_CVI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod, __pyx_v_rocperiod); /* function exit code */ goto __pyx_L0; @@ -74788,7 +77125,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_620stream_PLUS_DM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_630stream_CVI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod, int __pyx_v_rocperiod) { npy_intp __pyx_v_length; TA_RetCode __pyx_v_retCode; double *__pyx_v_high_data; @@ -74803,37 +77140,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_620stream_PLUS_DM(CYTHON_UNUSED PyObje int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_PLUS_DM", 0); + __Pyx_RefNannySetupContext("stream_CVI", 0); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4346, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3247, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4348, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3249, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4350, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3251, __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_v_retCode = TA_CVI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_timeperiod, __pyx_v_rocperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4353, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CVI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3254, __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(5, 4354, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -74843,7 +77180,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_620stream_PLUS_DM(CYTHON_UNUSED PyObje /* 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_AddTraceback("talib._ta_lib.stream_CVI", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_high); @@ -74855,16 +77192,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_620stream_PLUS_DM(CYTHON_UNUSED PyObje /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_623stream_PPO(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_633stream_DEMA(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_622stream_PPO, "stream_PPO(ndarray real, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int matype=0)\n\nPPO(real[, fastperiod=?, slowperiod=?, matype=?])\n\nPercentage Price Oscillator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastperiod: 12\n slowperiod: 26\n matype: 0 (Simple Moving Average)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_623stream_PPO = {"stream_PPO", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_623stream_PPO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_622stream_PPO}; -static PyObject *__pyx_pw_5talib_7_ta_lib_623stream_PPO(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_632stream_DEMA, "stream_DEMA(ndarray real, int timeperiod=-0x80000000)\n\nDEMA(real[, timeperiod=?])\n\nDouble Exponential Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_633stream_DEMA = {"stream_DEMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_633stream_DEMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_632stream_DEMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_633stream_DEMA(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -74872,20 +77209,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyArrayObject *__pyx_v_real = 0; - int __pyx_v_fastperiod; - int __pyx_v_slowperiod; - int __pyx_v_matype; + int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_PPO (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_DEMA (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -74895,88 +77230,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4356, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3257, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4356, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4356, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4356, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3257, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4356, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3257, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_PPO", 0) < (0)) __PYX_ERR(5, 4356, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_DEMA", 0) < (0)) __PYX_ERR(5, 3257, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_PPO", 0, 1, 4, i); __PYX_ERR(5, 4356, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_DEMA", 0, 1, 2, i); __PYX_ERR(5, 3257, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4356, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4356, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4356, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3257, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4356, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3257, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4358, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)((int)-2147483648)); - } - if (values[2]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4358, __pyx_L3_error) - } else { - __pyx_v_slowperiod = ((int)((int)-2147483648)); - } - if (values[3]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4358, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3259, __pyx_L3_error) } else { - __pyx_v_matype = ((int)((int)0)); + __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_PPO", 0, 1, 4, __pyx_nargs); __PYX_ERR(5, 4356, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_DEMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3257, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_PPO", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4358, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_622stream_PPO(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3259, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_632stream_DEMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -74995,7 +77304,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_622stream_PPO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype) { +static PyObject *__pyx_pf_5talib_7_ta_lib_632stream_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; @@ -75008,10 +77317,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_622stream_PPO(CYTHON_UNUSED PyObject * int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_PPO", 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(5, 4379, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -75022,14 +77331,14 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_622stream_PPO(CYTHON_UNUSED PyObject * __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_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_mstate_global->__pyx_n_u_TA_PPO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4384, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DEMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3283, __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(5, 4385, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -75039,7 +77348,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_622stream_PPO(CYTHON_UNUSED PyObject * /* 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_AddTraceback("talib._ta_lib.stream_DEMA", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_real); @@ -75050,24 +77359,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_622stream_PPO(CYTHON_UNUSED PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_625stream_ROC(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_635stream_DIV(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_624stream_ROC, "stream_ROC(ndarray real, int timeperiod=-0x80000000)\n\nROC(real[, timeperiod=?])\n\nRate of change : ((real/prevPrice)-1)*100 (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_625stream_ROC = {"stream_ROC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_625stream_ROC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_624stream_ROC}; -static PyObject *__pyx_pw_5talib_7_ta_lib_625stream_ROC(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_634stream_DIV, "stream_DIV(ndarray real0, ndarray real1)\n\nDIV(real0, real1)\n\nVector Arithmetic Div (Math Operators)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_635stream_DIV = {"stream_DIV", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_635stream_DIV, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_634stream_DIV}; +static PyObject *__pyx_pw_5talib_7_ta_lib_635stream_DIV(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyArrayObject *__pyx_v_real0 = 0; + PyArrayObject *__pyx_v_real1 = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -75078,7 +77387,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_ROC (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_DIV (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -75088,62 +77397,242 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4387, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3286, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4387, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3286, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4387, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3286, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_ROC", 0) < (0)) __PYX_ERR(5, 4387, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_ROC", 0, 1, 2, i); __PYX_ERR(5, 4387, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_DIV", 0) < (0)) __PYX_ERR(5, 3286, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_DIV", 1, 2, 2, i); __PYX_ERR(5, 3286, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3286, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3286, __pyx_L3_error) + } + __pyx_v_real0 = ((PyArrayObject *)values[0]); + __pyx_v_real1 = ((PyArrayObject *)values[1]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_DIV", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 3286, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(5, 3288, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(5, 3288, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_634stream_DIV(__pyx_self, __pyx_v_real0, __pyx_v_real1); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_634stream_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(5, 3307, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real0)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3309, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real1)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3311, __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_mstate_global->__pyx_n_u_TA_DIV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3314, __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(5, 3315, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __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_637stream_DONCHIAN(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_636stream_DONCHIAN, "stream_DONCHIAN(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nDONCHIAN(high, low[, timeperiod=?])\n\nDonchian Channels (Overlap Studies)\n\nInputs:\n prices: ['high', 'low']\nParameters:\n timeperiod: 20\nOutputs:\n upperband\n middleband\n lowerband"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_637stream_DONCHIAN = {"stream_DONCHIAN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_637stream_DONCHIAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_636stream_DONCHIAN}; +static PyObject *__pyx_pw_5talib_7_ta_lib_637stream_DONCHIAN(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_DONCHIAN (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3317, __pyx_L3_error) + if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3317, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4387, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3317, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4387, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3317, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_DONCHIAN", 0) < (0)) __PYX_ERR(5, 3317, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_DONCHIAN", 0, 2, 3, i); __PYX_ERR(5, 3317, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3317, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3317, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3317, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4389, __pyx_L3_error) + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3319, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_ROC", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4387, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_DONCHIAN", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 3317, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_ROC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.stream_DONCHIAN", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4389, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_624stream_ROC(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 3319, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 3319, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_636stream_DONCHIAN(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -75162,54 +77651,93 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_624stream_ROC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_636stream_DONCHIAN(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_real_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - double __pyx_v_outreal; + double __pyx_v_outrealupperband; + double __pyx_v_outrealmiddleband; + double __pyx_v_outreallowerband; 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; + PyObject *__pyx_t_5 = 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_RefNannySetupContext("stream_DONCHIAN", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4408, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3343, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3345, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - __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_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3347, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __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_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4413, __pyx_L1_error) + __pyx_v_retCode = TA_DONCHIAN((((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_outrealupperband), (&__pyx_v_outrealmiddleband), (&__pyx_v_outreallowerband)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DONCHIAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3352, __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(5, 4414, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outrealupperband); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3353, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outrealmiddleband); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3353, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outreallowerband); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3353, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3353, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 3353, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3) != (0)) __PYX_ERR(5, 3353, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4) != (0)) __PYX_ERR(5, 3353, __pyx_L1_error); __pyx_t_1 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_r = __pyx_t_5; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_ROC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.stream_DONCHIAN", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -75217,16 +77745,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_624stream_ROC(CYTHON_UNUSED PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_627stream_ROCP(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_639stream_DPO(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_626stream_ROCP, "stream_ROCP(ndarray real, int timeperiod=-0x80000000)\n\nROCP(real[, timeperiod=?])\n\nRate of change Percentage: (real-prevPrice)/prevPrice (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_627stream_ROCP = {"stream_ROCP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_627stream_ROCP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_626stream_ROCP}; -static PyObject *__pyx_pw_5talib_7_ta_lib_627stream_ROCP(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_638stream_DPO, "stream_DPO(ndarray real, int timeperiod=-0x80000000)\n\nDPO(real[, timeperiod=?])\n\nDetrended Price Oscillator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 20\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_639stream_DPO = {"stream_DPO", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_639stream_DPO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_638stream_DPO}; +static PyObject *__pyx_pw_5talib_7_ta_lib_639stream_DPO(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -75245,7 +77773,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_ROCP (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_DPO (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -75257,60 +77785,60 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4416, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3355, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4416, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3355, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4416, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3355, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_ROCP", 0) < (0)) __PYX_ERR(5, 4416, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_DPO", 0) < (0)) __PYX_ERR(5, 3355, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_ROCP", 0, 1, 2, i); __PYX_ERR(5, 4416, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_DPO", 0, 1, 2, i); __PYX_ERR(5, 3355, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4416, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3355, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4416, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3355, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4418, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3357, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_ROCP", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4416, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_DPO", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3355, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_ROCP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.stream_DPO", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4418, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_626stream_ROCP(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3357, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_638stream_DPO(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -75329,7 +77857,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_626stream_ROCP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_638stream_DPO(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; @@ -75342,10 +77870,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_626stream_ROCP(CYTHON_UNUSED PyObject int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_ROCP", 0); + __Pyx_RefNannySetupContext("stream_DPO", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4437, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3376, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -75356,14 +77884,14 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_626stream_ROCP(CYTHON_UNUSED PyObject __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_v_retCode = TA_DPO((((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_mstate_global->__pyx_n_u_TA_ROCP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4442, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DPO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3381, __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(5, 4443, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3382, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -75373,7 +77901,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_626stream_ROCP(CYTHON_UNUSED PyObject /* 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_AddTraceback("talib._ta_lib.stream_DPO", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_real); @@ -75384,35 +77912,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_626stream_ROCP(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_629stream_ROCR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_641stream_DX(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_628stream_ROCR, "stream_ROCR(ndarray real, int timeperiod=-0x80000000)\n\nROCR(real[, timeperiod=?])\n\nRate of change ratio: (real/prevPrice) (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_629stream_ROCR = {"stream_ROCR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_629stream_ROCR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_628stream_ROCR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_629stream_ROCR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_640stream_DX, "stream_DX(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nDX(high, low, close[, timeperiod=?])\n\nDirectional Movement Index (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_641stream_DX = {"stream_DX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_641stream_DX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_640stream_DX}; +static PyObject *__pyx_pw_5talib_7_ta_lib_641stream_DX(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_ROCR (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_DX (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -75422,62 +77952,276 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4445, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3384, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3384, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3384, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4445, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3384, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4445, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3384, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_ROCR", 0) < (0)) __PYX_ERR(5, 4445, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_ROCR", 0, 1, 2, i); __PYX_ERR(5, 4445, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_DX", 0) < (0)) __PYX_ERR(5, 3384, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_DX", 0, 3, 4, i); __PYX_ERR(5, 3384, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3384, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3384, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3384, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3384, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3386, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_DX", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 3384, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 3386, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 3386, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 3386, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_640stream_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; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_640stream_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(5, 3407, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3409, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3411, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3413, __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_mstate_global->__pyx_n_u_TA_DX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3416, __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(5, 3417, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __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_643stream_EFI(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_642stream_EFI, "stream_EFI(ndarray close, ndarray volume, int timeperiod=-0x80000000)\n\nEFI(close, volume[, timeperiod=?])\n\nElder's Force Index (Volume Indicators)\n\nInputs:\n prices: ['close', 'volume']\nParameters:\n timeperiod: 13\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_643stream_EFI = {"stream_EFI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_643stream_EFI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_642stream_EFI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_643stream_EFI(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_close = 0; + PyArrayObject *__pyx_v_volume = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_EFI (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3419, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3419, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4445, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3419, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4445, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3419, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_EFI", 0) < (0)) __PYX_ERR(5, 3419, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_EFI", 0, 2, 3, i); __PYX_ERR(5, 3419, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3419, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3419, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3419, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4447, __pyx_L3_error) + __pyx_v_close = ((PyArrayObject *)values[0]); + __pyx_v_volume = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3421, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_ROCR", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4445, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_EFI", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 3419, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_ROCR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.stream_EFI", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4447, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_628stream_ROCR(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 3421, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 3421, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_642stream_EFI(__pyx_self, __pyx_v_close, __pyx_v_volume, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -75496,41 +78240,52 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_628stream_ROCR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_642stream_EFI(CYTHON_UNUSED PyObject *__pyx_self, 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_real_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_ROCR", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("stream_EFI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_INCREF((PyObject *)__pyx_v_volume); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4466, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3441, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3443, __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_f_5numpy_7ndarray_4data_data(__pyx_v_volume)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3445, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; __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_v_retCode = TA_EFI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __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_mstate_global->__pyx_n_u_TA_ROCR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4471, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EFI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3448, __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(5, 4472, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3449, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -75540,10 +78295,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_628stream_ROCR(CYTHON_UNUSED PyObject /* 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_AddTraceback("talib._ta_lib.stream_EFI", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF((PyObject *)__pyx_v_volume); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -75551,16 +78307,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_628stream_ROCR(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_631stream_ROCR100(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_645stream_EMA(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_630stream_ROCR100, "stream_ROCR100(ndarray real, int timeperiod=-0x80000000)\n\nROCR100(real[, timeperiod=?])\n\nRate of change ratio 100 scale: (real/prevPrice)*100 (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_631stream_ROCR100 = {"stream_ROCR100", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_631stream_ROCR100, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_630stream_ROCR100}; -static PyObject *__pyx_pw_5talib_7_ta_lib_631stream_ROCR100(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_644stream_EMA, "stream_EMA(ndarray real, int timeperiod=-0x80000000)\n\nEMA(real[, timeperiod=?])\n\nExponential Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_645stream_EMA = {"stream_EMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_645stream_EMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_644stream_EMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_645stream_EMA(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -75579,7 +78335,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_ROCR100 (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_EMA (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -75591,60 +78347,60 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4474, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3451, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4474, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3451, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4474, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3451, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_ROCR100", 0) < (0)) __PYX_ERR(5, 4474, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_EMA", 0) < (0)) __PYX_ERR(5, 3451, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_ROCR100", 0, 1, 2, i); __PYX_ERR(5, 4474, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_EMA", 0, 1, 2, i); __PYX_ERR(5, 3451, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4474, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3451, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4474, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3451, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4476, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3453, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_ROCR100", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4474, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_EMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3451, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_ROCR100", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4476, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_630stream_ROCR100(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3453, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_644stream_EMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -75663,7 +78419,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_630stream_ROCR100(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_644stream_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; @@ -75676,10 +78432,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_630stream_ROCR100(CYTHON_UNUSED PyObje int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_ROCR100", 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(5, 4495, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3472, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -75690,14 +78446,14 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_630stream_ROCR100(CYTHON_UNUSED PyObje __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_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_mstate_global->__pyx_n_u_TA_ROCR100, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4500, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3477, __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(5, 4501, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3478, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -75707,7 +78463,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_630stream_ROCR100(CYTHON_UNUSED PyObje /* 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_AddTraceback("talib._ta_lib.stream_EMA", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_real); @@ -75718,16 +78474,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_630stream_ROCR100(CYTHON_UNUSED PyObje /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_633stream_RSI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_647stream_ER(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_632stream_RSI, "stream_RSI(ndarray real, int timeperiod=-0x80000000)\n\nRSI(real[, timeperiod=?])\n\nRelative Strength Index (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_633stream_RSI = {"stream_RSI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_633stream_RSI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_632stream_RSI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_633stream_RSI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_646stream_ER, "stream_ER(ndarray real, int timeperiod=-0x80000000)\n\nER(real[, timeperiod=?])\n\nKaufman Efficiency Ratio (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_647stream_ER = {"stream_ER", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_647stream_ER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_646stream_ER}; +static PyObject *__pyx_pw_5talib_7_ta_lib_647stream_ER(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -75746,7 +78502,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_RSI (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_ER (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -75758,60 +78514,60 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4503, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3480, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4503, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3480, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4503, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3480, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_RSI", 0) < (0)) __PYX_ERR(5, 4503, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_ER", 0) < (0)) __PYX_ERR(5, 3480, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_RSI", 0, 1, 2, i); __PYX_ERR(5, 4503, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_ER", 0, 1, 2, i); __PYX_ERR(5, 3480, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4503, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3480, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4503, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3480, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4505, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3482, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_RSI", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4503, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_ER", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3480, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_RSI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.stream_ER", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4505, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_632stream_RSI(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3482, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_646stream_ER(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -75830,7 +78586,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_632stream_RSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_646stream_ER(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; @@ -75843,10 +78599,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_632stream_RSI(CYTHON_UNUSED PyObject * int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_RSI", 0); + __Pyx_RefNannySetupContext("stream_ER", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4524, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3501, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -75857,14 +78613,14 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_632stream_RSI(CYTHON_UNUSED PyObject * __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_v_retCode = TA_ER((((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_mstate_global->__pyx_n_u_TA_RSI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4529, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3506, __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(5, 4530, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3507, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -75874,7 +78630,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_632stream_RSI(CYTHON_UNUSED PyObject * /* 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_AddTraceback("talib._ta_lib.stream_ER", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_real); @@ -75885,16 +78641,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_632stream_RSI(CYTHON_UNUSED PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_635stream_SAR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_649stream_ERI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_634stream_SAR, "stream_SAR(ndarray high, ndarray low, double acceleration=0.02, double maximum=0.2)\n\nSAR(high, low[, acceleration=?, maximum=?])\n\nParabolic SAR (Overlap Studies)\n\nInputs:\n prices: ['high', 'low']\nParameters:\n acceleration: 0.02\n maximum: 0.2\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_635stream_SAR = {"stream_SAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_635stream_SAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_634stream_SAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_635stream_SAR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_648stream_ERI, "stream_ERI(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nERI(high, low, close[, timeperiod=?])\n\nElder Ray Index (Bull Power / Bear Power) (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n timeperiod: 13\nOutputs:\n bullpower\n bearpower"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_649stream_ERI = {"stream_ERI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_649stream_ERI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_648stream_ERI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_649stream_ERI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -75903,8 +78659,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds ) { PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; - double __pyx_v_acceleration; - double __pyx_v_maximum; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -75915,7 +78671,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_SAR (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_ERI (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -75925,83 +78681,78 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_acceleration,&__pyx_mstate_global->__pyx_n_u_maximum,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4532, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3509, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4532, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3509, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4532, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3509, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4532, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3509, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4532, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3509, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_SAR", 0) < (0)) __PYX_ERR(5, 4532, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_SAR", 0, 2, 4, i); __PYX_ERR(5, 4532, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_ERI", 0) < (0)) __PYX_ERR(5, 3509, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_ERI", 0, 3, 4, i); __PYX_ERR(5, 3509, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4532, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3509, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4532, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3509, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4532, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3509, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4532, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3509, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_high = ((PyArrayObject *)values[0]); __pyx_v_low = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_acceleration = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_acceleration == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 4534, __pyx_L3_error) - } else { - __pyx_v_acceleration = ((double)((double)0.02)); - } + __pyx_v_close = ((PyArrayObject *)values[2]); if (values[3]) { - __pyx_v_maximum = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_maximum == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 4534, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3511, __pyx_L3_error) } else { - __pyx_v_maximum = ((double)((double)0.2)); + __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_SAR", 0, 2, 4, __pyx_nargs); __PYX_ERR(5, 4532, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_ERI", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 3509, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_SAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.stream_ERI", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 4534, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 4534, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_634stream_SAR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_acceleration, __pyx_v_maximum); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 3511, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 3511, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 3511, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_648stream_ERI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -76020,66 +78771,93 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_634stream_SAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, double __pyx_v_acceleration, double __pyx_v_maximum) { +static PyObject *__pyx_pf_5talib_7_ta_lib_648stream_ERI(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; + double __pyx_v_outbullpower; + double __pyx_v_outbearpower; 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_SAR", 0); + __Pyx_RefNannySetupContext("stream_ERI", 0); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4555, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3534, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4557, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3536, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4559, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3538, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3540, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_outbullpower = __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_v_outbearpower = __pyx_v_5talib_7_ta_lib_NaN; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4562, __pyx_L1_error) + __pyx_v_retCode = TA_ERI((((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_outbullpower), (&__pyx_v_outbearpower)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ERI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3544, __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(5, 4563, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outbullpower); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3545, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outbearpower); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3545, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3545, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 3545, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(5, 3545, __pyx_L1_error); __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_AddTraceback("talib._ta_lib.stream_SAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("talib._ta_lib.stream_ERI", __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; @@ -76087,43 +78865,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_634stream_SAR(CYTHON_UNUSED PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_637stream_SAREXT(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_651stream_EXP(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_636stream_SAREXT, "stream_SAREXT(ndarray high, ndarray low, double startvalue=-4e37, double offsetonreverse=-4e37, double accelerationinitlong=-4e37, double accelerationlong=-4e37, double accelerationmaxlong=-4e37, double accelerationinitshort=-4e37, double accelerationshort=-4e37, double accelerationmaxshort=-4e37)\n\nSAREXT(high, low[, startvalue=?, offsetonreverse=?, accelerationinitlong=?, accelerationlong=?, accelerationmaxlong=?, accelerationinitshort=?, accelerationshort=?, accelerationmaxshort=?])\n\nParabolic SAR - Extended (Overlap Studies)\n\nInputs:\n prices: ['high', 'low']\nParameters:\n startvalue: 0.0\n offsetonreverse: 0.0\n accelerationinitlong: 0.02\n accelerationlong: 0.02\n accelerationmaxlong: 0.2\n accelerationinitshort: 0.02\n accelerationshort: 0.02\n accelerationmaxshort: 0.2\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_637stream_SAREXT = {"stream_SAREXT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_637stream_SAREXT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_636stream_SAREXT}; -static PyObject *__pyx_pw_5talib_7_ta_lib_637stream_SAREXT(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_650stream_EXP, "stream_EXP(ndarray real)\n\nEXP(real)\n\nVector Arithmetic Exp (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_651stream_EXP = {"stream_EXP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_651stream_EXP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_650stream_EXP}; +static PyObject *__pyx_pw_5talib_7_ta_lib_651stream_EXP(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - double __pyx_v_startvalue; - double __pyx_v_offsetonreverse; - double __pyx_v_accelerationinitlong; - double __pyx_v_accelerationlong; - double __pyx_v_accelerationmaxlong; - double __pyx_v_accelerationinitshort; - double __pyx_v_accelerationshort; - double __pyx_v_accelerationmaxshort; + PyArrayObject *__pyx_v_real = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_SAREXT (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_EXP (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -76133,161 +78902,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_startvalue,&__pyx_mstate_global->__pyx_n_u_offsetonreverse,&__pyx_mstate_global->__pyx_n_u_accelerationinitlong,&__pyx_mstate_global->__pyx_n_u_accelerationlong,&__pyx_mstate_global->__pyx_n_u_accelerationmaxlong,&__pyx_mstate_global->__pyx_n_u_accelerationinitshort,&__pyx_mstate_global->__pyx_n_u_accelerationshort,&__pyx_mstate_global->__pyx_n_u_accelerationmaxshort,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4565, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3547, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 10: - values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(5, 4565, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 9: - values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(5, 4565, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 8: - values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(5, 4565, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 7: - values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 4565, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 4565, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 4565, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4565, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4565, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4565, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4565, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3547, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_SAREXT", 0) < (0)) __PYX_ERR(5, 4565, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_SAREXT", 0, 2, 10, i); __PYX_ERR(5, 4565, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 10: - values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(5, 4565, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 9: - values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(5, 4565, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 8: - values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(5, 4565, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 7: - values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 4565, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 4565, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 4565, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4565, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4565, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4565, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4565, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_EXP", 0) < (0)) __PYX_ERR(5, 3547, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_EXP", 1, 1, 1, i); __PYX_ERR(5, 3547, __pyx_L3_error) } } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_startvalue = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_startvalue == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 4567, __pyx_L3_error) - } else { - __pyx_v_startvalue = ((double)((double)-4e37)); - } - if (values[3]) { - __pyx_v_offsetonreverse = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_offsetonreverse == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 4567, __pyx_L3_error) - } else { - __pyx_v_offsetonreverse = ((double)((double)-4e37)); - } - if (values[4]) { - __pyx_v_accelerationinitlong = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_accelerationinitlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 4567, __pyx_L3_error) - } else { - __pyx_v_accelerationinitlong = ((double)((double)-4e37)); - } - if (values[5]) { - __pyx_v_accelerationlong = __Pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_accelerationlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 4567, __pyx_L3_error) - } else { - __pyx_v_accelerationlong = ((double)((double)-4e37)); - } - if (values[6]) { - __pyx_v_accelerationmaxlong = __Pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_accelerationmaxlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 4567, __pyx_L3_error) - } else { - __pyx_v_accelerationmaxlong = ((double)((double)-4e37)); - } - if (values[7]) { - __pyx_v_accelerationinitshort = __Pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_accelerationinitshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 4567, __pyx_L3_error) - } else { - __pyx_v_accelerationinitshort = ((double)((double)-4e37)); - } - if (values[8]) { - __pyx_v_accelerationshort = __Pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_accelerationshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 4567, __pyx_L3_error) - } else { - __pyx_v_accelerationshort = ((double)((double)-4e37)); - } - if (values[9]) { - __pyx_v_accelerationmaxshort = __Pyx_PyFloat_AsDouble(values[9]); if (unlikely((__pyx_v_accelerationmaxshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 4567, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_accelerationmaxshort = ((double)((double)-4e37)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3547, __pyx_L3_error) } + __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_SAREXT", 0, 2, 10, __pyx_nargs); __PYX_ERR(5, 4565, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_EXP", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3547, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_SAREXT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.stream_EXP", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 4567, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 4567, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_636stream_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); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3549, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_650stream_EXP(__pyx_self, __pyx_v_real); /* function exit code */ goto __pyx_L0; @@ -76306,52 +78960,41 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_636stream_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) { +static PyObject *__pyx_pf_5talib_7_ta_lib_650stream_EXP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { npy_intp __pyx_v_length; TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; + 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; - 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(5, 4594, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + __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_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4596, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3566, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4598, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); __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_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_mstate_global->__pyx_n_u_TA_SAREXT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4601, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EXP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3571, __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(5, 4602, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3572, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -76361,11 +79004,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_636stream_SAREXT(CYTHON_UNUSED PyObjec /* 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_AddTraceback("talib._ta_lib.stream_EXP", __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_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -76373,16 +79015,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_636stream_SAREXT(CYTHON_UNUSED PyObjec /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_639stream_SIN(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_653stream_FLOOR(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_638stream_SIN, "stream_SIN(ndarray real)\n\nSIN(real)\n\nVector Trigonometric Sin (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_639stream_SIN = {"stream_SIN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_639stream_SIN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_638stream_SIN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_639stream_SIN(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_652stream_FLOOR, "stream_FLOOR(ndarray real)\n\nFLOOR(real)\n\nVector Floor (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_653stream_FLOOR = {"stream_FLOOR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_653stream_FLOOR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_652stream_FLOOR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_653stream_FLOOR(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -76400,7 +79042,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_SIN (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_FLOOR (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -76412,44 +79054,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4604, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3574, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4604, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3574, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_SIN", 0) < (0)) __PYX_ERR(5, 4604, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_FLOOR", 0) < (0)) __PYX_ERR(5, 3574, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_SIN", 1, 1, 1, i); __PYX_ERR(5, 4604, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_FLOOR", 1, 1, 1, i); __PYX_ERR(5, 3574, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4604, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3574, __pyx_L3_error) } __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_SIN", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 4604, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_FLOOR", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3574, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_SIN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.stream_FLOOR", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4606, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_638stream_SIN(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3576, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_652stream_FLOOR(__pyx_self, __pyx_v_real); /* function exit code */ goto __pyx_L0; @@ -76468,7 +79110,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_638stream_SIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_652stream_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; @@ -76481,10 +79123,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_638stream_SIN(CYTHON_UNUSED PyObject * int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_SIN", 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(5, 4623, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3593, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -76495,14 +79137,14 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_638stream_SIN(CYTHON_UNUSED PyObject * __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_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_mstate_global->__pyx_n_u_TA_SIN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4628, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FLOOR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3598, __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(5, 4629, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3599, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -76512,7 +79154,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_638stream_SIN(CYTHON_UNUSED PyObject * /* 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_AddTraceback("talib._ta_lib.stream_FLOOR", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_real); @@ -76523,16 +79165,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_638stream_SIN(CYTHON_UNUSED PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_641stream_SINH(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_655stream_FOSC(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_640stream_SINH, "stream_SINH(ndarray real)\n\nSINH(real)\n\nVector Trigonometric Sinh (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_641stream_SINH = {"stream_SINH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_641stream_SINH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_640stream_SINH}; -static PyObject *__pyx_pw_5talib_7_ta_lib_641stream_SINH(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_654stream_FOSC, "stream_FOSC(ndarray real, int timeperiod=-0x80000000)\n\nFOSC(real[, timeperiod=?])\n\nForecast Oscillator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 5\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_655stream_FOSC = {"stream_FOSC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_655stream_FOSC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_654stream_FOSC}; +static PyObject *__pyx_pw_5talib_7_ta_lib_655stream_FOSC(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -76540,17 +79182,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_SINH (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_FOSC (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -76560,46 +79203,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4631, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3601, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3601, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4631, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3601, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_SINH", 0) < (0)) __PYX_ERR(5, 4631, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_FOSC", 0) < (0)) __PYX_ERR(5, 3601, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_SINH", 1, 1, 1, i); __PYX_ERR(5, 4631, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_FOSC", 0, 1, 2, i); __PYX_ERR(5, 3601, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4631, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3601, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3601, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3603, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_SINH", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 4631, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_FOSC", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3601, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_SINH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.stream_FOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4633, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_640stream_SINH(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3603, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_654stream_FOSC(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -76618,7 +79277,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_640stream_SINH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_654stream_FOSC(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; @@ -76631,10 +79290,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_640stream_SINH(CYTHON_UNUSED PyObject int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_SINH", 0); + __Pyx_RefNannySetupContext("stream_FOSC", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4650, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3622, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -76645,14 +79304,14 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_640stream_SINH(CYTHON_UNUSED PyObject __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_v_retCode = TA_FOSC((((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_mstate_global->__pyx_n_u_TA_SINH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4655, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3627, __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(5, 4656, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3628, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -76662,7 +79321,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_640stream_SINH(CYTHON_UNUSED PyObject /* 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_AddTraceback("talib._ta_lib.stream_FOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_real); @@ -76673,35 +79332,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_640stream_SINH(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_643stream_SMA(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_657stream_FRACTAL(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_642stream_SMA, "stream_SMA(ndarray real, int timeperiod=-0x80000000)\n\nSMA(real[, timeperiod=?])\n\nSimple Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_643stream_SMA = {"stream_SMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_643stream_SMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_642stream_SMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_643stream_SMA(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_656stream_FRACTAL, "stream_FRACTAL(ndarray high, ndarray low, int leftbars=-0x80000000, int rightbars=-0x80000000)\n\nFRACTAL(high, low[, leftbars=?, rightbars=?])\n\nWilliams Fractal (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low']\nParameters:\n leftbars: 2\n rightbars: 2\nOutputs:\n swinghigh\n swinglow"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_657stream_FRACTAL = {"stream_FRACTAL", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_657stream_FRACTAL, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_656stream_FRACTAL}; +static PyObject *__pyx_pw_5talib_7_ta_lib_657stream_FRACTAL(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + int __pyx_v_leftbars; + int __pyx_v_rightbars; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_SMA (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_FRACTAL (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -76711,62 +79372,83 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_leftbars,&__pyx_mstate_global->__pyx_n_u_rightbars,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4658, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3630, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3630, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3630, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4658, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3630, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4658, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3630, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_SMA", 0) < (0)) __PYX_ERR(5, 4658, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_SMA", 0, 1, 2, i); __PYX_ERR(5, 4658, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_FRACTAL", 0) < (0)) __PYX_ERR(5, 3630, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_FRACTAL", 0, 2, 4, i); __PYX_ERR(5, 3630, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3630, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3630, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4658, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3630, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4658, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3630, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4660, __pyx_L3_error) + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_leftbars = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_leftbars == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3632, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + __pyx_v_leftbars = ((int)((int)-2147483648)); + } + if (values[3]) { + __pyx_v_rightbars = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_rightbars == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3632, __pyx_L3_error) + } else { + __pyx_v_rightbars = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_SMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4658, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_FRACTAL", 0, 2, 4, __pyx_nargs); __PYX_ERR(5, 3630, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_SMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.stream_FRACTAL", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4660, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_642stream_SMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 3632, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 3632, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_656stream_FRACTAL(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_leftbars, __pyx_v_rightbars); /* function exit code */ goto __pyx_L0; @@ -76785,54 +79467,83 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_642stream_SMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_656stream_FRACTAL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_leftbars, int __pyx_v_rightbars) { npy_intp __pyx_v_length; TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - double __pyx_v_outreal; + int __pyx_v_outswinghigh; + int __pyx_v_outswinglow; 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_SMA", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("stream_FRACTAL", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4679, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3655, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3657, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - __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_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3659, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_v_outswinghigh = 0; + + __pyx_v_outswinglow = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4684, __pyx_L1_error) + __pyx_v_retCode = TA_FRACTAL((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_leftbars, __pyx_v_rightbars, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outswinghigh), (&__pyx_v_outswinglow)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FRACTAL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3663, __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(5, 4685, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outswinghigh); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3664, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outswinglow); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3664, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3664, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 3664, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(5, 3664, __pyx_L1_error); __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_AddTraceback("talib._ta_lib.stream_SMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("talib._ta_lib.stream_FRACTAL", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -76840,34 +79551,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_642stream_SMA(CYTHON_UNUSED PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_645stream_SQRT(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_659stream_HA(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_644stream_SQRT, "stream_SQRT(ndarray real)\n\nSQRT(real)\n\nVector Square Root (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_645stream_SQRT = {"stream_SQRT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_645stream_SQRT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_644stream_SQRT}; -static PyObject *__pyx_pw_5talib_7_ta_lib_645stream_SQRT(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_658stream_HA, "stream_HA(ndarray open, ndarray high, ndarray low, ndarray close)\n\nHA(open, high, low, close)\n\nHeikin-Ashi Candles (Price Transform)\n\nInputs:\n prices: ['open', 'high', 'low', 'close']\nOutputs:\n haopen\n hahigh\n halow\n haclose"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_659stream_HA = {"stream_HA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_659stream_HA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_658stream_HA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_659stream_HA(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_SQRT (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_HA (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -76877,46 +79591,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4687, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3666, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3666, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3666, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3666, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4687, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3666, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_SQRT", 0) < (0)) __PYX_ERR(5, 4687, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_SQRT", 1, 1, 1, i); __PYX_ERR(5, 4687, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_HA", 0) < (0)) __PYX_ERR(5, 3666, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_HA", 1, 4, 4, i); __PYX_ERR(5, 3666, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4687, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3666, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3666, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3666, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3666, __pyx_L3_error) } - __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_SQRT", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 4687, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_HA", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 3666, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_SQRT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.stream_HA", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4689, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_644stream_SQRT(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 3668, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 3668, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 3668, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 3668, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_658stream_HA(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -76935,54 +79673,123 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_644stream_SQRT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_658stream_HA(CYTHON_UNUSED 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_real_data; + 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; + double __pyx_v_outhaopen; + double __pyx_v_outhahigh; + double __pyx_v_outhalow; + double __pyx_v_outhaclose; 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; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_SQRT", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("stream_HA", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4706, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3694, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3696, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __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 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3698, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3700, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3702, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_v_outhaopen = __pyx_v_5talib_7_ta_lib_NaN; + + __pyx_v_outhahigh = __pyx_v_5talib_7_ta_lib_NaN; + + __pyx_v_outhalow = __pyx_v_5talib_7_ta_lib_NaN; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SQRT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4711, __pyx_L1_error) + __pyx_v_outhaclose = __pyx_v_5talib_7_ta_lib_NaN; + + __pyx_v_retCode = TA_HA((((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_outhaopen), (&__pyx_v_outhahigh), (&__pyx_v_outhalow), (&__pyx_v_outhaclose)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3708, __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(5, 4712, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outhaopen); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3709, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outhahigh); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3709, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outhalow); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3709, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outhaclose); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3709, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyTuple_New(4); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 3709, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 3709, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_3) != (0)) __PYX_ERR(5, 3709, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_4) != (0)) __PYX_ERR(5, 3709, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 3, __pyx_t_5) != (0)) __PYX_ERR(5, 3709, __pyx_L1_error); __pyx_t_1 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_5 = 0; + __pyx_r = __pyx_t_6; + __pyx_t_6 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_SQRT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.stream_HA", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -76990,16 +79797,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_644stream_SQRT(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_647stream_STDDEV(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_661stream_HMA(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_646stream_STDDEV, "stream_STDDEV(ndarray real, int timeperiod=-0x80000000, double nbdev=-4e37)\n\nSTDDEV(real[, timeperiod=?, nbdev=?])\n\nStandard Deviation (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 5\n nbdev: 1.0\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_647stream_STDDEV = {"stream_STDDEV", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_647stream_STDDEV, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_646stream_STDDEV}; -static PyObject *__pyx_pw_5talib_7_ta_lib_647stream_STDDEV(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_660stream_HMA, "stream_HMA(ndarray real, int timeperiod=-0x80000000)\n\nHMA(real[, timeperiod=?])\n\nHull Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 20\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_661stream_HMA = {"stream_HMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_661stream_HMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_660stream_HMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_661stream_HMA(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -77008,18 +79815,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds ) { PyArrayObject *__pyx_v_real = 0; int __pyx_v_timeperiod; - double __pyx_v_nbdev; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_STDDEV (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_HMA (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -77029,75 +79835,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4714, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3711, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4714, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4714, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3711, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4714, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3711, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_STDDEV", 0) < (0)) __PYX_ERR(5, 4714, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_HMA", 0) < (0)) __PYX_ERR(5, 3711, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_STDDEV", 0, 1, 3, i); __PYX_ERR(5, 4714, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_HMA", 0, 1, 2, i); __PYX_ERR(5, 3711, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4714, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4714, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3711, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4714, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3711, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4716, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3713, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } - if (values[2]) { - __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 4716, __pyx_L3_error) - } else { - __pyx_v_nbdev = ((double)((double)-4e37)); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_STDDEV", 0, 1, 3, __pyx_nargs); __PYX_ERR(5, 4714, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_HMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3711, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_STDDEV", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.stream_HMA", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4716, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_646stream_STDDEV(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdev); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3713, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_660stream_HMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -77116,7 +79909,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_646stream_STDDEV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev) { +static PyObject *__pyx_pf_5talib_7_ta_lib_660stream_HMA(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; @@ -77129,10 +79922,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_646stream_STDDEV(CYTHON_UNUSED PyObjec int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_STDDEV", 0); + __Pyx_RefNannySetupContext("stream_HMA", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4736, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3732, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -77143,14 +79936,14 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_646stream_STDDEV(CYTHON_UNUSED PyObjec __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_v_retCode = TA_HMA((((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_mstate_global->__pyx_n_u_TA_STDDEV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4741, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3737, __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(5, 4742, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3738, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -77160,7 +79953,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_646stream_STDDEV(CYTHON_UNUSED PyObjec /* 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_AddTraceback("talib._ta_lib.stream_HMA", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_real); @@ -77171,41 +79964,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_646stream_STDDEV(CYTHON_UNUSED PyObjec /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_649stream_STOCH(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_663stream_HT_DCPERIOD(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_648stream_STOCH, "stream_STOCH(ndarray high, ndarray low, ndarray close, int fastk_period=-0x80000000, int slowk_period=-0x80000000, int slowk_matype=0, int slowd_period=-0x80000000, int slowd_matype=0)\n\nSTOCH(high, low, close[, fastk_period=?, slowk_period=?, slowk_matype=?, slowd_period=?, slowd_matype=?])\n\nStochastic (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n fastk_period: 5\n slowk_period: 3\n slowk_matype: 0\n slowd_period: 3\n slowd_matype: 0\nOutputs:\n slowk\n slowd"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_649stream_STOCH = {"stream_STOCH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_649stream_STOCH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_648stream_STOCH}; -static PyObject *__pyx_pw_5talib_7_ta_lib_649stream_STOCH(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_662stream_HT_DCPERIOD, "stream_HT_DCPERIOD(ndarray real)\n\nHT_DCPERIOD(real)\n\nHilbert Transform - Dominant Cycle Period (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_663stream_HT_DCPERIOD = {"stream_HT_DCPERIOD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_663stream_HT_DCPERIOD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_662stream_HT_DCPERIOD}; +static PyObject *__pyx_pw_5talib_7_ta_lib_663stream_HT_DCPERIOD(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_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; + PyArrayObject *__pyx_v_real = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[8] = {0,0,0,0,0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_STOCH (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_HT_DCPERIOD (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -77215,130 +80001,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_slowk_period,&__pyx_mstate_global->__pyx_n_u_slowk_matype,&__pyx_mstate_global->__pyx_n_u_slowd_period,&__pyx_mstate_global->__pyx_n_u_slowd_matype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4744, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3740, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 8: - values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(5, 4744, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 7: - values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 4744, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 4744, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 4744, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4744, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4744, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4744, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4744, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3740, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_STOCH", 0) < (0)) __PYX_ERR(5, 4744, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_STOCH", 0, 3, 8, i); __PYX_ERR(5, 4744, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 8: - values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(5, 4744, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 7: - values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 4744, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 4744, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 4744, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4744, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4744, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4744, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4744, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_HT_DCPERIOD", 0) < (0)) __PYX_ERR(5, 3740, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_HT_DCPERIOD", 1, 1, 1, i); __PYX_ERR(5, 3740, __pyx_L3_error) } } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4746, __pyx_L3_error) - } else { - __pyx_v_fastk_period = ((int)((int)-2147483648)); - } - if (values[4]) { - __pyx_v_slowk_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4746, __pyx_L3_error) - } else { - __pyx_v_slowk_period = ((int)((int)-2147483648)); - } - if (values[5]) { - __pyx_v_slowk_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowk_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4746, __pyx_L3_error) - } else { - __pyx_v_slowk_matype = ((int)((int)0)); - } - if (values[6]) { - __pyx_v_slowd_period = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_slowd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4746, __pyx_L3_error) - } else { - __pyx_v_slowd_period = ((int)((int)-2147483648)); - } - if (values[7]) { - __pyx_v_slowd_matype = __Pyx_PyLong_As_int(values[7]); if (unlikely((__pyx_v_slowd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4746, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_slowd_matype = ((int)((int)0)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3740, __pyx_L3_error) } + __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_STOCH", 0, 3, 8, __pyx_nargs); __PYX_ERR(5, 4744, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_HT_DCPERIOD", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3740, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_STOCH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.stream_HT_DCPERIOD", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 4746, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 4746, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 4746, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_648stream_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); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3742, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_662stream_HT_DCPERIOD(__pyx_self, __pyx_v_real); /* function exit code */ goto __pyx_L0; @@ -77357,93 +80059,54 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_648stream_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) { +static PyObject *__pyx_pf_5talib_7_ta_lib_662stream_HT_DCPERIOD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { 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_real_data; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - double __pyx_v_outslowk; - double __pyx_v_outslowd; + double __pyx_v_outreal; 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(5, 4773, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4775, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + __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_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4777, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3759, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4779, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); - __pyx_v_outslowk = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_v_outslowd = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_outreal = __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_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_mstate_global->__pyx_n_u_TA_STOCH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4783, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPERIOD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3764, __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(5, 4784, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3765, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outslowd); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4784, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4784, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 4784, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(5, 4784, __pyx_L1_error); + __pyx_r = __pyx_t_1; __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_AddTraceback("talib._ta_lib.stream_HT_DCPERIOD", __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_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -77451,39 +80114,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_648stream_STOCH(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_651stream_STOCHF(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_665stream_HT_DCPHASE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_650stream_STOCHF, "stream_STOCHF(ndarray high, ndarray low, ndarray close, int fastk_period=-0x80000000, int fastd_period=-0x80000000, int fastd_matype=0)\n\nSTOCHF(high, low, close[, fastk_period=?, fastd_period=?, fastd_matype=?])\n\nStochastic Fast (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n fastk_period: 5\n fastd_period: 3\n fastd_matype: 0\nOutputs:\n fastk\n fastd"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_651stream_STOCHF = {"stream_STOCHF", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_651stream_STOCHF, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_650stream_STOCHF}; -static PyObject *__pyx_pw_5talib_7_ta_lib_651stream_STOCHF(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_664stream_HT_DCPHASE, "stream_HT_DCPHASE(ndarray real)\n\nHT_DCPHASE(real)\n\nHilbert Transform - Dominant Cycle Phase (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_665stream_HT_DCPHASE = {"stream_HT_DCPHASE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_665stream_HT_DCPHASE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_664stream_HT_DCPHASE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_665stream_HT_DCPHASE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_fastk_period; - int __pyx_v_fastd_period; - int __pyx_v_fastd_matype; + PyArrayObject *__pyx_v_real = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[6] = {0,0,0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_STOCHF (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_HT_DCPHASE (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -77493,104 +80151,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_fastd_period,&__pyx_mstate_global->__pyx_n_u_fastd_matype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4786, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3767, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 4786, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 4786, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4786, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4786, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4786, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4786, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3767, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_STOCHF", 0) < (0)) __PYX_ERR(5, 4786, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_STOCHF", 0, 3, 6, i); __PYX_ERR(5, 4786, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 4786, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 4786, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4786, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4786, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4786, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4786, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_HT_DCPHASE", 0) < (0)) __PYX_ERR(5, 3767, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_HT_DCPHASE", 1, 1, 1, i); __PYX_ERR(5, 3767, __pyx_L3_error) } } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4788, __pyx_L3_error) - } else { - __pyx_v_fastk_period = ((int)((int)-2147483648)); - } - if (values[4]) { - __pyx_v_fastd_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4788, __pyx_L3_error) - } else { - __pyx_v_fastd_period = ((int)((int)-2147483648)); - } - if (values[5]) { - __pyx_v_fastd_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_fastd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4788, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_fastd_matype = ((int)((int)0)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3767, __pyx_L3_error) } + __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_STOCHF", 0, 3, 6, __pyx_nargs); __PYX_ERR(5, 4786, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_HT_DCPHASE", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3767, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_STOCHF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.stream_HT_DCPHASE", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 4788, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 4788, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 4788, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_650stream_STOCHF(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3769, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_664stream_HT_DCPHASE(__pyx_self, __pyx_v_real); /* function exit code */ goto __pyx_L0; @@ -77609,93 +80209,54 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_650stream_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) { +static PyObject *__pyx_pf_5talib_7_ta_lib_664stream_HT_DCPHASE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { 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_real_data; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - double __pyx_v_outfastk; - double __pyx_v_outfastd; + double __pyx_v_outreal; 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(5, 4813, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4815, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + __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_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4817, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3786, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4819, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); - __pyx_v_outfastk = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_v_outfastd = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_outreal = __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_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_mstate_global->__pyx_n_u_TA_STOCHF, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4823, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPHASE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3791, __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(5, 4824, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3792, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outfastd); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4824, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4824, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 4824, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(5, 4824, __pyx_L1_error); + __pyx_r = __pyx_t_1; __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_AddTraceback("talib._ta_lib.stream_HT_DCPHASE", __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_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -77703,16 +80264,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_650stream_STOCHF(CYTHON_UNUSED PyObjec /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_653stream_STOCHRSI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_667stream_HT_PHASOR(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_652stream_STOCHRSI, "stream_STOCHRSI(ndarray real, int timeperiod=-0x80000000, int fastk_period=-0x80000000, int fastd_period=-0x80000000, int fastd_matype=0)\n\nSTOCHRSI(real[, timeperiod=?, fastk_period=?, fastd_period=?, fastd_matype=?])\n\nStochastic Relative Strength Index (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\n fastk_period: 5\n fastd_period: 3\n fastd_matype: 0\nOutputs:\n fastk\n fastd"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_653stream_STOCHRSI = {"stream_STOCHRSI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_653stream_STOCHRSI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_652stream_STOCHRSI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_653stream_STOCHRSI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_666stream_HT_PHASOR, "stream_HT_PHASOR(ndarray real)\n\nHT_PHASOR(real)\n\nHilbert Transform - Phasor Components (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n inphase\n quadrature"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_667stream_HT_PHASOR = {"stream_HT_PHASOR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_667stream_HT_PHASOR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_666stream_HT_PHASOR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_667stream_HT_PHASOR(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -77720,21 +80281,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - int __pyx_v_fastk_period; - int __pyx_v_fastd_period; - int __pyx_v_fastd_matype; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_STOCHRSI (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_HT_PHASOR (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -77744,101 +80301,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_fastd_period,&__pyx_mstate_global->__pyx_n_u_fastd_matype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4826, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3794, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 4826, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4826, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4826, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4826, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4826, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3794, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_STOCHRSI", 0) < (0)) __PYX_ERR(5, 4826, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_HT_PHASOR", 0) < (0)) __PYX_ERR(5, 3794, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_STOCHRSI", 0, 1, 5, i); __PYX_ERR(5, 4826, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_HT_PHASOR", 1, 1, 1, i); __PYX_ERR(5, 3794, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 4826, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4826, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4826, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4826, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4826, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3794, __pyx_L3_error) } __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4828, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - if (values[2]) { - __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4828, __pyx_L3_error) - } else { - __pyx_v_fastk_period = ((int)((int)-2147483648)); - } - if (values[3]) { - __pyx_v_fastd_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4828, __pyx_L3_error) - } else { - __pyx_v_fastd_period = ((int)((int)-2147483648)); - } - if (values[4]) { - __pyx_v_fastd_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4828, __pyx_L3_error) - } else { - __pyx_v_fastd_matype = ((int)((int)0)); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_STOCHRSI", 0, 1, 5, __pyx_nargs); __PYX_ERR(5, 4826, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_HT_PHASOR", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3794, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_STOCHRSI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.stream_HT_PHASOR", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4828, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_652stream_STOCHRSI(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3796, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_666stream_HT_PHASOR(__pyx_self, __pyx_v_real); /* function exit code */ goto __pyx_L0; @@ -77857,14 +80359,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_652stream_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) { +static PyObject *__pyx_pf_5talib_7_ta_lib_666stream_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_outfastk; - double __pyx_v_outfastd; + double __pyx_v_outinphase; + double __pyx_v_outquadrature; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -77873,10 +80375,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_652stream_STOCHRSI(CYTHON_UNUSED PyObj int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_STOCHRSI", 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(5, 4852, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3815, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -77885,27 +80387,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_652stream_STOCHRSI(CYTHON_UNUSED PyObj __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_v_outfastk = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_outinphase = __pyx_v_5talib_7_ta_lib_NaN; - __pyx_v_outfastd = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_outquadrature = __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_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_mstate_global->__pyx_n_u_TA_STOCHRSI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4858, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_PHASOR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3821, __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(5, 4859, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outinphase); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3822, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outfastd); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4859, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outquadrature); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3822, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4859, __pyx_L1_error) + __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3822, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 4859, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 3822, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2) != (0)) __PYX_ERR(5, 4859, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2) != (0)) __PYX_ERR(5, 3822, __pyx_L1_error); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_r = __pyx_t_3; @@ -77918,7 +80420,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_652stream_STOCHRSI(CYTHON_UNUSED PyObj __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_AddTraceback("talib._ta_lib.stream_HT_PHASOR", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_real); @@ -77929,35 +80431,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_652stream_STOCHRSI(CYTHON_UNUSED PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_655stream_SUB(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_669stream_HT_SINE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_654stream_SUB, "stream_SUB(ndarray real0, ndarray real1)\n\nSUB(real0, real1)\n\nVector Arithmetic Subtraction (Math Operators)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_655stream_SUB = {"stream_SUB", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_655stream_SUB, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_654stream_SUB}; -static PyObject *__pyx_pw_5talib_7_ta_lib_655stream_SUB(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_668stream_HT_SINE, "stream_HT_SINE(ndarray real)\n\nHT_SINE(real)\n\nHilbert Transform - SineWave (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n sine\n leadsine"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_669stream_HT_SINE = {"stream_HT_SINE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_669stream_HT_SINE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_668stream_HT_SINE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_669stream_HT_SINE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real0 = 0; - PyArrayObject *__pyx_v_real1 = 0; + PyArrayObject *__pyx_v_real = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_SUB (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_HT_SINE (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -77967,54 +80468,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4861, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3824, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4861, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4861, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3824, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_SUB", 0) < (0)) __PYX_ERR(5, 4861, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_SUB", 1, 2, 2, i); __PYX_ERR(5, 4861, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_HT_SINE", 0) < (0)) __PYX_ERR(5, 3824, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_HT_SINE", 1, 1, 1, i); __PYX_ERR(5, 3824, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4861, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4861, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3824, __pyx_L3_error) } - __pyx_v_real0 = ((PyArrayObject *)values[0]); - __pyx_v_real1 = ((PyArrayObject *)values[1]); + __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_SUB", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 4861, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_HT_SINE", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3824, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_SUB", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.stream_HT_SINE", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(5, 4863, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(5, 4863, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_654stream_SUB(__pyx_self, __pyx_v_real0, __pyx_v_real1); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3826, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_668stream_HT_SINE(__pyx_self, __pyx_v_real); /* function exit code */ goto __pyx_L0; @@ -78033,66 +80526,71 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_654stream_SUB(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1) { +static PyObject *__pyx_pf_5talib_7_ta_lib_668stream_HT_SINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { npy_intp __pyx_v_length; TA_RetCode __pyx_v_retCode; - double *__pyx_v_real0_data; - double *__pyx_v_real1_data; + double *__pyx_v_real_data; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - double __pyx_v_outreal; + double __pyx_v_outsine; + double __pyx_v_outleadsine; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + 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_SUB", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real0); - __Pyx_INCREF((PyObject *)__pyx_v_real1); + __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_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4882, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3845, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_real0_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4884, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); - __pyx_v_real1_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1)); + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4886, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_outsine = __pyx_v_5talib_7_ta_lib_NaN; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_outleadsine = __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_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_mstate_global->__pyx_n_u_TA_SUB, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4889, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_SINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3851, __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(5, 4890, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outsine); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3852, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outleadsine); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3852, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3852, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 3852, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2) != (0)) __PYX_ERR(5, 3852, __pyx_L1_error); __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_AddTraceback("talib._ta_lib.stream_SUB", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_real0); - __Pyx_XDECREF((PyObject *)__pyx_v_real1); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -78100,16 +80598,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_654stream_SUB(CYTHON_UNUSED PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_657stream_SUM(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_671stream_HT_TRENDLINE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_656stream_SUM, "stream_SUM(ndarray real, int timeperiod=-0x80000000)\n\nSUM(real[, timeperiod=?])\n\nSummation (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_657stream_SUM = {"stream_SUM", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_657stream_SUM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_656stream_SUM}; -static PyObject *__pyx_pw_5talib_7_ta_lib_657stream_SUM(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_670stream_HT_TRENDLINE, "stream_HT_TRENDLINE(ndarray real)\n\nHT_TRENDLINE(real)\n\nHilbert Transform - Instantaneous Trendline (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_671stream_HT_TRENDLINE = {"stream_HT_TRENDLINE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_671stream_HT_TRENDLINE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_670stream_HT_TRENDLINE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_671stream_HT_TRENDLINE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -78117,18 +80615,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_SUM (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_HT_TRENDLINE (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -78138,62 +80635,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4892, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3854, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4892, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4892, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3854, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_SUM", 0) < (0)) __PYX_ERR(5, 4892, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_HT_TRENDLINE", 0) < (0)) __PYX_ERR(5, 3854, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_SUM", 0, 1, 2, i); __PYX_ERR(5, 4892, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_HT_TRENDLINE", 1, 1, 1, i); __PYX_ERR(5, 3854, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4892, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4892, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3854, __pyx_L3_error) } __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4894, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_SUM", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4892, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_HT_TRENDLINE", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3854, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_SUM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.stream_HT_TRENDLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4894, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_656stream_SUM(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3856, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_670stream_HT_TRENDLINE(__pyx_self, __pyx_v_real); /* function exit code */ goto __pyx_L0; @@ -78212,7 +80693,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_656stream_SUM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_670stream_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; @@ -78225,10 +80706,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_656stream_SUM(CYTHON_UNUSED PyObject * int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_SUM", 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(5, 4913, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3873, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -78239,14 +80720,14 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_656stream_SUM(CYTHON_UNUSED PyObject * __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_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_mstate_global->__pyx_n_u_TA_SUM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4918, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDLINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3878, __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(5, 4919, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3879, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -78256,7 +80737,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_656stream_SUM(CYTHON_UNUSED PyObject * /* 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_AddTraceback("talib._ta_lib.stream_HT_TRENDLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_real); @@ -78267,16 +80748,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_656stream_SUM(CYTHON_UNUSED PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_659stream_T3(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_673stream_HT_TRENDMODE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_658stream_T3, "stream_T3(ndarray real, int timeperiod=-0x80000000, double vfactor=-4e37)\n\nT3(real[, timeperiod=?, vfactor=?])\n\nTriple Exponential Moving Average (T3) (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 5\n vfactor: 0.7\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_659stream_T3 = {"stream_T3", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_659stream_T3, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_658stream_T3}; -static PyObject *__pyx_pw_5talib_7_ta_lib_659stream_T3(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_672stream_HT_TRENDMODE, "stream_HT_TRENDMODE(ndarray real)\n\nHT_TRENDMODE(real)\n\nHilbert Transform - Trend vs Cycle Mode (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n integer"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_673stream_HT_TRENDMODE = {"stream_HT_TRENDMODE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_673stream_HT_TRENDMODE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_672stream_HT_TRENDMODE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_673stream_HT_TRENDMODE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -78284,19 +80765,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - double __pyx_v_vfactor; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_T3 (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_HT_TRENDMODE (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -78306,75 +80785,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_vfactor,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4921, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3881, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4921, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4921, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4921, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3881, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_T3", 0) < (0)) __PYX_ERR(5, 4921, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_HT_TRENDMODE", 0) < (0)) __PYX_ERR(5, 3881, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_T3", 0, 1, 3, i); __PYX_ERR(5, 4921, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_HT_TRENDMODE", 1, 1, 1, i); __PYX_ERR(5, 3881, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4921, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4921, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4921, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3881, __pyx_L3_error) } __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4923, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - if (values[2]) { - __pyx_v_vfactor = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_vfactor == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 4923, __pyx_L3_error) - } else { - __pyx_v_vfactor = ((double)((double)-4e37)); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_T3", 0, 1, 3, __pyx_nargs); __PYX_ERR(5, 4921, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_HT_TRENDMODE", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3881, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_T3", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.stream_HT_TRENDMODE", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4923, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_658stream_T3(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_vfactor); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3883, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_672stream_HT_TRENDMODE(__pyx_self, __pyx_v_real); /* function exit code */ goto __pyx_L0; @@ -78393,23 +80843,23 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_658stream_T3(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_vfactor) { +static PyObject *__pyx_pf_5talib_7_ta_lib_672stream_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; - double __pyx_v_outreal; + 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_T3", 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(5, 4943, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3900, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -78418,16 +80868,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_658stream_T3(CYTHON_UNUSED PyObject *_ __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_outinteger = 0; - __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_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_mstate_global->__pyx_n_u_TA_T3, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4948, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDMODE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3905, __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(5, 4949, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3906, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -78437,7 +80887,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_658stream_T3(CYTHON_UNUSED PyObject *_ /* 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_AddTraceback("talib._ta_lib.stream_HT_TRENDMODE", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_real); @@ -78448,34 +80898,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_658stream_T3(CYTHON_UNUSED PyObject *_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_661stream_TAN(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_675stream_IMI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_660stream_TAN, "stream_TAN(ndarray real)\n\nTAN(real)\n\nVector Trigonometric Tan (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_661stream_TAN = {"stream_TAN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_661stream_TAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_660stream_TAN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_661stream_TAN(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_674stream_IMI, "stream_IMI(ndarray open, ndarray close, int timeperiod=-0x80000000)\n\nIMI(open, close[, timeperiod=?])\n\nIntraday Momentum Index (Momentum Indicators)\n\nInputs:\n prices: ['open', 'close']\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_675stream_IMI = {"stream_IMI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_675stream_IMI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_674stream_IMI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_675stream_IMI(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_TAN (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_IMI (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -78485,46 +80937,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4951, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3908, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3908, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3908, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4951, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3908, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_TAN", 0) < (0)) __PYX_ERR(5, 4951, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_TAN", 1, 1, 1, i); __PYX_ERR(5, 4951, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_IMI", 0) < (0)) __PYX_ERR(5, 3908, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_IMI", 0, 2, 3, i); __PYX_ERR(5, 3908, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4951, __pyx_L3_error) + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3908, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3908, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3908, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_close = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3910, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); } - __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_TAN", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 4951, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_IMI", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 3908, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_TAN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.stream_IMI", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4953, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_660stream_TAN(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 3910, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 3910, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_674stream_IMI(__pyx_self, __pyx_v_open, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -78543,41 +81019,52 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_660stream_TAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_674stream_IMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; + double *__pyx_v_open_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_TAN", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("stream_IMI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4970, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3930, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3932, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_open, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3934, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; __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_v_retCode = TA_IMI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4975, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_IMI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3937, __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(5, 4976, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3938, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -78587,10 +81074,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_660stream_TAN(CYTHON_UNUSED PyObject * /* 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_AddTraceback("talib._ta_lib.stream_IMI", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -78598,16 +81086,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_660stream_TAN(CYTHON_UNUSED PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_663stream_TANH(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_677stream_KAMA(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_662stream_TANH, "stream_TANH(ndarray real)\n\nTANH(real)\n\nVector Trigonometric Tanh (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_663stream_TANH = {"stream_TANH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_663stream_TANH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_662stream_TANH}; -static PyObject *__pyx_pw_5talib_7_ta_lib_663stream_TANH(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_676stream_KAMA, "stream_KAMA(ndarray real, int timeperiod=-0x80000000)\n\nKAMA(real[, timeperiod=?])\n\nKaufman Adaptive Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_677stream_KAMA = {"stream_KAMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_677stream_KAMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_676stream_KAMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_677stream_KAMA(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -78615,17 +81103,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_TANH (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_KAMA (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -78635,46 +81124,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4978, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3940, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3940, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4978, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3940, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_TANH", 0) < (0)) __PYX_ERR(5, 4978, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_KAMA", 0) < (0)) __PYX_ERR(5, 3940, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_TANH", 1, 1, 1, i); __PYX_ERR(5, 4978, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_KAMA", 0, 1, 2, i); __PYX_ERR(5, 3940, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4978, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3940, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3940, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3942, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_TANH", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 4978, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_KAMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3940, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_TANH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4980, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_662stream_TANH(__pyx_self, __pyx_v_real); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3942, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_676stream_KAMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -78693,7 +81198,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_662stream_TANH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_676stream_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; @@ -78706,10 +81211,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_662stream_TANH(CYTHON_UNUSED PyObject int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_TANH", 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(5, 4997, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3961, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -78720,14 +81225,14 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_662stream_TANH(CYTHON_UNUSED PyObject __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_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_mstate_global->__pyx_n_u_TA_TANH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5002, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KAMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3966, __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(5, 5003, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3967, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -78737,7 +81242,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_662stream_TANH(CYTHON_UNUSED PyObject /* 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_AddTraceback("talib._ta_lib.stream_KAMA", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_real); @@ -78748,35 +81253,39 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_662stream_TANH(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_665stream_TEMA(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_679stream_KC(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_664stream_TEMA, "stream_TEMA(ndarray real, int timeperiod=-0x80000000)\n\nTEMA(real[, timeperiod=?])\n\nTriple Exponential Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_665stream_TEMA = {"stream_TEMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_665stream_TEMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_664stream_TEMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_665stream_TEMA(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_678stream_KC, "stream_KC(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000, int atrperiod=-0x80000000, double nbdev=-4e37)\n\nKC(high, low, close[, timeperiod=?, atrperiod=?, nbdev=?])\n\nKeltner Channels (Overlap Studies)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n timeperiod: 20\n atrperiod: 10\n nbdev: 2.0\nOutputs:\n upperband\n middleband\n lowerband"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_679stream_KC = {"stream_KC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_679stream_KC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_678stream_KC}; +static PyObject *__pyx_pw_5talib_7_ta_lib_679stream_KC(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; int __pyx_v_timeperiod; + int __pyx_v_atrperiod; + double __pyx_v_nbdev; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[6] = {0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_TEMA (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_KC (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -78786,62 +81295,104 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_atrperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5005, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3969, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 3969, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 3969, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3969, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3969, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5005, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3969, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5005, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3969, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_TEMA", 0) < (0)) __PYX_ERR(5, 5005, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_TEMA", 0, 1, 2, i); __PYX_ERR(5, 5005, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_KC", 0) < (0)) __PYX_ERR(5, 3969, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_KC", 0, 3, 6, i); __PYX_ERR(5, 3969, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5005, __pyx_L3_error) + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 3969, __pyx_L3_error) CYTHON_FALLTHROUGH; - case 1: + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 3969, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3969, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3969, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3969, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5005, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3969, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5007, __pyx_L3_error) + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3971, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } + if (values[4]) { + __pyx_v_atrperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_atrperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3971, __pyx_L3_error) + } else { + __pyx_v_atrperiod = ((int)((int)-2147483648)); + } + if (values[5]) { + __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 3971, __pyx_L3_error) + } else { + __pyx_v_nbdev = ((double)((double)-4e37)); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_TEMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5005, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_KC", 0, 3, 6, __pyx_nargs); __PYX_ERR(5, 3969, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_TEMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.stream_KC", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5007, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_664stream_TEMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 3971, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 3971, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 3971, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_678stream_KC(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod, __pyx_v_atrperiod, __pyx_v_nbdev); /* function exit code */ goto __pyx_L0; @@ -78860,54 +81411,103 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_664stream_TEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_678stream_KC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod, int __pyx_v_atrperiod, double __pyx_v_nbdev) { npy_intp __pyx_v_length; TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_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; + double __pyx_v_outrealupperband; + double __pyx_v_outrealmiddleband; + double __pyx_v_outreallowerband; 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; + PyObject *__pyx_t_5 = 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_RefNannySetupContext("stream_KC", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5026, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3998, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4000, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - __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 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4002, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4004, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TEMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5031, __pyx_L1_error) + __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_KC((((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_atrperiod, __pyx_v_nbdev, (&__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_mstate_global->__pyx_n_u_TA_KC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4009, __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(5, 5032, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outrealupperband); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4010, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outrealmiddleband); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4010, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outreallowerband); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4010, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 4010, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 4010, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3) != (0)) __PYX_ERR(5, 4010, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4) != (0)) __PYX_ERR(5, 4010, __pyx_L1_error); __pyx_t_1 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_r = __pyx_t_5; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_TEMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.stream_KC", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -78915,16 +81515,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_664stream_TEMA(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_667stream_TRANGE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_681stream_KDJ(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_666stream_TRANGE, "stream_TRANGE(ndarray high, ndarray low, ndarray close)\n\nTRANGE(high, low, close)\n\nTrue Range (Volatility Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_667stream_TRANGE = {"stream_TRANGE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_667stream_TRANGE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_666stream_TRANGE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_667stream_TRANGE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_680stream_KDJ, "stream_KDJ(ndarray high, ndarray low, ndarray close, int fastk_period=-0x80000000, int slowk_period=-0x80000000, int slowk_matype=13, int slowd_period=-0x80000000, int slowd_matype=13)\n\nKDJ(high, low, close[, fastk_period=?, slowk_period=?, slowk_matype=?, slowd_period=?, slowd_matype=?])\n\nKDJ Stochastic (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n fastk_period: 9\n slowk_period: 3\n slowk_matype: 13 (Wilder's Smoothed Moving Average)\n slowd_period: 3\n slowd_matype: 13 (Wilder's Smoothed Moving Average)\nOutputs:\n k\n d\n j"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_681stream_KDJ = {"stream_KDJ", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_681stream_KDJ, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_680stream_KDJ}; +static PyObject *__pyx_pw_5talib_7_ta_lib_681stream_KDJ(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -78934,17 +81534,22 @@ 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; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[8] = {0,0,0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_TRANGE (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_KDJ (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -78954,62 +81559,130 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_slowk_period,&__pyx_mstate_global->__pyx_n_u_slowk_matype,&__pyx_mstate_global->__pyx_n_u_slowd_period,&__pyx_mstate_global->__pyx_n_u_slowd_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5034, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4012, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 8: + values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(5, 4012, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 4012, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 4012, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 4012, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4012, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5034, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4012, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5034, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4012, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5034, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4012, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_TRANGE", 0) < (0)) __PYX_ERR(5, 5034, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_KDJ", 0) < (0)) __PYX_ERR(5, 4012, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_TRANGE", 1, 3, 3, i); __PYX_ERR(5, 5034, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_KDJ", 0, 3, 8, i); __PYX_ERR(5, 4012, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5034, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5034, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5034, __pyx_L3_error) + switch (__pyx_nargs) { + case 8: + values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(5, 4012, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 4012, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 4012, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 4012, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4012, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4012, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4012, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4012, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_high = ((PyArrayObject *)values[0]); __pyx_v_low = ((PyArrayObject *)values[1]); __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4014, __pyx_L3_error) + } else { + __pyx_v_fastk_period = ((int)((int)-2147483648)); + } + if (values[4]) { + __pyx_v_slowk_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4014, __pyx_L3_error) + } else { + __pyx_v_slowk_period = ((int)((int)-2147483648)); + } + if (values[5]) { + __pyx_v_slowk_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowk_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4014, __pyx_L3_error) + } else { + __pyx_v_slowk_matype = ((int)((int)13)); + } + if (values[6]) { + __pyx_v_slowd_period = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_slowd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4014, __pyx_L3_error) + } else { + __pyx_v_slowd_period = ((int)((int)-2147483648)); + } + if (values[7]) { + __pyx_v_slowd_matype = __Pyx_PyLong_As_int(values[7]); if (unlikely((__pyx_v_slowd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4014, __pyx_L3_error) + } else { + __pyx_v_slowd_matype = ((int)((int)13)); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_TRANGE", 1, 3, 3, __pyx_nargs); __PYX_ERR(5, 5034, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_KDJ", 0, 3, 8, __pyx_nargs); __PYX_ERR(5, 4012, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_TRANGE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.stream_KDJ", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 5036, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 5036, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 5036, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_666stream_TRANGE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 4014, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 4014, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 4014, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_680stream_KDJ(__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; @@ -79028,7 +81701,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_666stream_TRANGE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_680stream_KDJ(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; @@ -79036,63 +81709,90 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_666stream_TRANGE(CYTHON_UNUSED PyObjec double *__pyx_v_close_data; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - double __pyx_v_outreal; + double __pyx_v_outk; + double __pyx_v_outd; + double __pyx_v_outj; 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; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_TRANGE", 0); + __Pyx_RefNannySetupContext("stream_KDJ", 0); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5055, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4043, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5057, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4045, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5059, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4047, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5061, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4049, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_outk = __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_v_outd = __pyx_v_5talib_7_ta_lib_NaN; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRANGE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5064, __pyx_L1_error) + __pyx_v_outj = __pyx_v_5talib_7_ta_lib_NaN; + + __pyx_v_retCode = TA_KDJ((((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_outk), (&__pyx_v_outd), (&__pyx_v_outj)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KDJ, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4054, __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(5, 5065, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outk); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4055, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outd); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4055, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outj); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4055, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 4055, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 4055, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3) != (0)) __PYX_ERR(5, 4055, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4) != (0)) __PYX_ERR(5, 4055, __pyx_L1_error); __pyx_t_1 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_r = __pyx_t_5; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_TRANGE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.stream_KDJ", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_high); @@ -79105,16 +81805,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_666stream_TRANGE(CYTHON_UNUSED PyObjec /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_669stream_TRIMA(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_683stream_LINEARREG(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_668stream_TRIMA, "stream_TRIMA(ndarray real, int timeperiod=-0x80000000)\n\nTRIMA(real[, timeperiod=?])\n\nTriangular Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_669stream_TRIMA = {"stream_TRIMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_669stream_TRIMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_668stream_TRIMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_669stream_TRIMA(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_682stream_LINEARREG, "stream_LINEARREG(ndarray real, int timeperiod=-0x80000000)\n\nLINEARREG(real[, timeperiod=?])\n\nLinear Regression (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_683stream_LINEARREG = {"stream_LINEARREG", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_683stream_LINEARREG, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_682stream_LINEARREG}; +static PyObject *__pyx_pw_5talib_7_ta_lib_683stream_LINEARREG(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -79133,7 +81833,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_TRIMA (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_LINEARREG (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -79145,60 +81845,60 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5067, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4057, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5067, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4057, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5067, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4057, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_TRIMA", 0) < (0)) __PYX_ERR(5, 5067, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_LINEARREG", 0) < (0)) __PYX_ERR(5, 4057, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_TRIMA", 0, 1, 2, i); __PYX_ERR(5, 5067, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_LINEARREG", 0, 1, 2, i); __PYX_ERR(5, 4057, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5067, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4057, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5067, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4057, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5069, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4059, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_TRIMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5067, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_LINEARREG", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4057, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_TRIMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5069, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_668stream_TRIMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4059, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_682stream_LINEARREG(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -79217,7 +81917,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_668stream_TRIMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_682stream_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; @@ -79230,10 +81930,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_668stream_TRIMA(CYTHON_UNUSED PyObject int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_TRIMA", 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(5, 5088, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4078, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -79244,14 +81944,14 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_668stream_TRIMA(CYTHON_UNUSED PyObject __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_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_mstate_global->__pyx_n_u_TA_TRIMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5093, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4083, __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(5, 5094, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4084, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -79261,7 +81961,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_668stream_TRIMA(CYTHON_UNUSED PyObject /* 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_AddTraceback("talib._ta_lib.stream_LINEARREG", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_real); @@ -79272,16 +81972,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_668stream_TRIMA(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_671stream_TRIX(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_685stream_LINEARREG_ANGLE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_670stream_TRIX, "stream_TRIX(ndarray real, int timeperiod=-0x80000000)\n\nTRIX(real[, timeperiod=?])\n\n1-day Rate-Of-Change (ROC) of a Triple Smooth EMA (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_671stream_TRIX = {"stream_TRIX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_671stream_TRIX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_670stream_TRIX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_671stream_TRIX(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_684stream_LINEARREG_ANGLE, "stream_LINEARREG_ANGLE(ndarray real, int timeperiod=-0x80000000)\n\nLINEARREG_ANGLE(real[, timeperiod=?])\n\nLinear Regression Angle (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_685stream_LINEARREG_ANGLE = {"stream_LINEARREG_ANGLE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_685stream_LINEARREG_ANGLE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_684stream_LINEARREG_ANGLE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_685stream_LINEARREG_ANGLE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -79300,7 +82000,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_TRIX (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_LINEARREG_ANGLE (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -79312,60 +82012,60 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5096, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4086, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5096, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4086, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5096, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4086, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_TRIX", 0) < (0)) __PYX_ERR(5, 5096, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_LINEARREG_ANGLE", 0) < (0)) __PYX_ERR(5, 4086, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_TRIX", 0, 1, 2, i); __PYX_ERR(5, 5096, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_LINEARREG_ANGLE", 0, 1, 2, i); __PYX_ERR(5, 4086, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5096, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4086, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5096, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4086, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5098, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4088, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_TRIX", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5096, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_LINEARREG_ANGLE", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4086, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_TRIX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5098, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_670stream_TRIX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4088, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_684stream_LINEARREG_ANGLE(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -79384,7 +82084,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_670stream_TRIX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_684stream_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; @@ -79397,10 +82097,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_670stream_TRIX(CYTHON_UNUSED PyObject int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_TRIX", 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(5, 5117, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4107, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -79411,14 +82111,14 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_670stream_TRIX(CYTHON_UNUSED PyObject __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_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_mstate_global->__pyx_n_u_TA_TRIX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5122, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_ANGLE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4112, __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(5, 5123, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4113, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -79428,7 +82128,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_670stream_TRIX(CYTHON_UNUSED PyObject /* 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_AddTraceback("talib._ta_lib.stream_LINEARREG_ANGLE", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_real); @@ -79439,16 +82139,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_670stream_TRIX(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_673stream_TSF(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_687stream_LINEARREG_INTERCEPT(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_672stream_TSF, "stream_TSF(ndarray real, int timeperiod=-0x80000000)\n\nTSF(real[, timeperiod=?])\n\nTime Series Forecast (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_673stream_TSF = {"stream_TSF", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_673stream_TSF, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_672stream_TSF}; -static PyObject *__pyx_pw_5talib_7_ta_lib_673stream_TSF(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_686stream_LINEARREG_INTERCEPT, "stream_LINEARREG_INTERCEPT(ndarray real, int timeperiod=-0x80000000)\n\nLINEARREG_INTERCEPT(real[, timeperiod=?])\n\nLinear Regression Intercept (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_687stream_LINEARREG_INTERCEPT = {"stream_LINEARREG_INTERCEPT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_687stream_LINEARREG_INTERCEPT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_686stream_LINEARREG_INTERCEPT}; +static PyObject *__pyx_pw_5talib_7_ta_lib_687stream_LINEARREG_INTERCEPT(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -79467,7 +82167,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_TSF (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_LINEARREG_INTERCEPT (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -79479,60 +82179,60 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5125, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4115, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5125, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4115, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5125, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4115, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_TSF", 0) < (0)) __PYX_ERR(5, 5125, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_LINEARREG_INTERCEPT", 0) < (0)) __PYX_ERR(5, 4115, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_TSF", 0, 1, 2, i); __PYX_ERR(5, 5125, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_LINEARREG_INTERCEPT", 0, 1, 2, i); __PYX_ERR(5, 4115, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5125, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4115, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5125, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4115, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5127, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4117, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_TSF", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5125, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_LINEARREG_INTERCEPT", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4115, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_TSF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5127, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_672stream_TSF(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4117, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_686stream_LINEARREG_INTERCEPT(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -79551,7 +82251,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_672stream_TSF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_686stream_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; @@ -79564,10 +82264,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_672stream_TSF(CYTHON_UNUSED PyObject * int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_TSF", 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(5, 5146, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4136, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; @@ -79578,14 +82278,14 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_672stream_TSF(CYTHON_UNUSED PyObject * __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_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_mstate_global->__pyx_n_u_TA_TSF, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5151, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_INTERCEPT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4141, __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(5, 5152, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -79595,7 +82295,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_672stream_TSF(CYTHON_UNUSED PyObject * /* 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_AddTraceback("talib._ta_lib.stream_LINEARREG_INTERCEPT", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_real); @@ -79606,36 +82306,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_672stream_TSF(CYTHON_UNUSED PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_675stream_TYPPRICE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_689stream_LINEARREG_SLOPE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_674stream_TYPPRICE, "stream_TYPPRICE(ndarray high, ndarray low, ndarray close)\n\nTYPPRICE(high, low, close)\n\nTypical Price (Price Transform)\n\nInputs:\n prices: ['high', 'low', 'close']\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_675stream_TYPPRICE = {"stream_TYPPRICE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_675stream_TYPPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_674stream_TYPPRICE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_675stream_TYPPRICE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_688stream_LINEARREG_SLOPE, "stream_LINEARREG_SLOPE(ndarray real, int timeperiod=-0x80000000)\n\nLINEARREG_SLOPE(real[, timeperiod=?])\n\nLinear Regression Slope (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_689stream_LINEARREG_SLOPE = {"stream_LINEARREG_SLOPE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_689stream_LINEARREG_SLOPE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_688stream_LINEARREG_SLOPE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_689stream_LINEARREG_SLOPE(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_TYPPRICE (wrapper)", 0); + __Pyx_RefNannySetupContext("stream_LINEARREG_SLOPE (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -79645,62 +82344,212 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5154, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4144, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5154, __pyx_L3_error) + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4144, __pyx_L3_error) CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4144, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_LINEARREG_SLOPE", 0) < (0)) __PYX_ERR(5, 4144, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_LINEARREG_SLOPE", 0, 1, 2, i); __PYX_ERR(5, 4144, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5154, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4144, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5154, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4144, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4146, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_LINEARREG_SLOPE", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4144, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_LINEARREG_SLOPE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4146, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_688stream_LINEARREG_SLOPE(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_688stream_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(5, 4165, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[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_mstate_global->__pyx_n_u_TA_LINEARREG_SLOPE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4170, __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(5, 4171, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __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_691stream_LN(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_690stream_LN, "stream_LN(ndarray real)\n\nLN(real)\n\nVector Log Natural (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_691stream_LN = {"stream_LN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_691stream_LN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_690stream_LN}; +static PyObject *__pyx_pw_5talib_7_ta_lib_691stream_LN(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_LN (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4173, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4173, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_TYPPRICE", 0) < (0)) __PYX_ERR(5, 5154, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_TYPPRICE", 1, 3, 3, i); __PYX_ERR(5, 5154, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_LN", 0) < (0)) __PYX_ERR(5, 4173, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_LN", 1, 1, 1, i); __PYX_ERR(5, 4173, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5154, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5154, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5154, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4173, __pyx_L3_error) } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); + __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_TYPPRICE", 1, 3, 3, __pyx_nargs); __PYX_ERR(5, 5154, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("stream_LN", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 4173, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_TYPPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.stream_LN", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 5156, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 5156, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 5156, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_674stream_TYPPRICE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4175, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_690stream_LN(__pyx_self, __pyx_v_real); /* function exit code */ goto __pyx_L0; @@ -79719,7132 +82568,22168 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_674stream_TYPPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_690stream_LN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { 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_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; - 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_RefNannySetupContext("stream_LN", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5175, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[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_mstate_global->__pyx_n_u_TA_LN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4197, __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(5, 4198, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __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_693stream_LOG10(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_692stream_LOG10, "stream_LOG10(ndarray real)\n\nLOG10(real)\n\nVector Log10 (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_693stream_LOG10 = {"stream_LOG10", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_693stream_LOG10, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_692stream_LOG10}; +static PyObject *__pyx_pw_5talib_7_ta_lib_693stream_LOG10(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_LOG10 (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4200, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4200, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_LOG10", 0) < (0)) __PYX_ERR(5, 4200, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_LOG10", 1, 1, 1, i); __PYX_ERR(5, 4200, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4200, __pyx_L3_error) + } + __pyx_v_real = ((PyArrayObject *)values[0]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_LOG10", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 4200, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_LOG10", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4202, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_692stream_LOG10(__pyx_self, __pyx_v_real); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_692stream_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(5, 4219, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[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_mstate_global->__pyx_n_u_TA_LOG10, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4224, __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(5, 4225, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __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_695stream_MA(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_694stream_MA, "stream_MA(ndarray real, int timeperiod=-0x80000000, int matype=0)\n\nMA(real[, timeperiod=?, matype=?])\n\nMoving average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\n matype: 0 (Simple Moving Average)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_695stream_MA = {"stream_MA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_695stream_MA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_694stream_MA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_695stream_MA(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + int __pyx_v_matype; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_MA (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4227, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4227, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4227, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4227, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MA", 0) < (0)) __PYX_ERR(5, 4227, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MA", 0, 1, 3, i); __PYX_ERR(5, 4227, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4227, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4227, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4227, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4229, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_matype = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4229, __pyx_L3_error) + } else { + __pyx_v_matype = ((int)((int)0)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_MA", 0, 1, 3, __pyx_nargs); __PYX_ERR(5, 4227, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4229, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_694stream_MA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_matype); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_694stream_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(5, 4249, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[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_mstate_global->__pyx_n_u_TA_MA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4254, __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(5, 4255, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __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_697stream_MACD(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_696stream_MACD, "stream_MACD(ndarray real, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int signalperiod=-0x80000000)\n\nMACD(real[, fastperiod=?, slowperiod=?, signalperiod=?])\n\nMoving Average Convergence/Divergence (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastperiod: 12\n slowperiod: 26\n signalperiod: 9\nOutputs:\n macd\n macdsignal\n macdhist"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_697stream_MACD = {"stream_MACD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_697stream_MACD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_696stream_MACD}; +static PyObject *__pyx_pw_5talib_7_ta_lib_697stream_MACD(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + int __pyx_v_signalperiod; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_MACD (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4257, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4257, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4257, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4257, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4257, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MACD", 0) < (0)) __PYX_ERR(5, 4257, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MACD", 0, 1, 4, i); __PYX_ERR(5, 4257, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4257, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4257, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4257, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4257, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4259, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4259, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)((int)-2147483648)); + } + if (values[3]) { + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4259, __pyx_L3_error) + } else { + __pyx_v_signalperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_MACD", 0, 1, 4, __pyx_nargs); __PYX_ERR(5, 4257, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_MACD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4259, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_696stream_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; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_696stream_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(5, 4284, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[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_mstate_global->__pyx_n_u_TA_MACD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4291, __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(5, 4292, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4292, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4292, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4292, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 4292, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2) != (0)) __PYX_ERR(5, 4292, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3) != (0)) __PYX_ERR(5, 4292, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + + /* 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_699stream_MACDEXT(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_698stream_MACDEXT, "stream_MACDEXT(ndarray real, int fastperiod=-0x80000000, int fastmatype=0, int slowperiod=-0x80000000, int slowmatype=0, int signalperiod=-0x80000000, int signalmatype=0)\n\nMACDEXT(real[, fastperiod=?, fastmatype=?, slowperiod=?, slowmatype=?, signalperiod=?, signalmatype=?])\n\nMACD with controllable MA type (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastperiod: 12\n fastmatype: 0 (Simple Moving Average)\n slowperiod: 26\n slowmatype: 0 (Simple Moving Average)\n signalperiod: 9\n signalmatype: 0 (Simple Moving Average)\nOutputs:\n macd\n macdsignal\n macdhist"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_699stream_MACDEXT = {"stream_MACDEXT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_699stream_MACDEXT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_698stream_MACDEXT}; +static PyObject *__pyx_pw_5talib_7_ta_lib_699stream_MACDEXT(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_fastperiod; + int __pyx_v_fastmatype; + int __pyx_v_slowperiod; + int __pyx_v_slowmatype; + int __pyx_v_signalperiod; + int __pyx_v_signalmatype; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[7] = {0,0,0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_MACDEXT (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_fastmatype,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_slowmatype,&__pyx_mstate_global->__pyx_n_u_signalperiod,&__pyx_mstate_global->__pyx_n_u_signalmatype,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4294, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 4294, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 4294, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 4294, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4294, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4294, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4294, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4294, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MACDEXT", 0) < (0)) __PYX_ERR(5, 4294, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MACDEXT", 0, 1, 7, i); __PYX_ERR(5, 4294, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 4294, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 4294, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 4294, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4294, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4294, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4294, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4294, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4296, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_fastmatype = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4296, __pyx_L3_error) + } else { + __pyx_v_fastmatype = ((int)((int)0)); + } + if (values[3]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4296, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)((int)-2147483648)); + } + if (values[4]) { + __pyx_v_slowmatype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4296, __pyx_L3_error) + } else { + __pyx_v_slowmatype = ((int)((int)0)); + } + if (values[5]) { + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4296, __pyx_L3_error) + } else { + __pyx_v_signalperiod = ((int)((int)-2147483648)); + } + if (values[6]) { + __pyx_v_signalmatype = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_signalmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4296, __pyx_L3_error) + } else { + __pyx_v_signalmatype = ((int)((int)0)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_MACDEXT", 0, 1, 7, __pyx_nargs); __PYX_ERR(5, 4294, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4296, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_698stream_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; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_698stream_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(5, 4324, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[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_mstate_global->__pyx_n_u_TA_MACDEXT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4331, __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(5, 4332, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4332, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4332, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4332, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 4332, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2) != (0)) __PYX_ERR(5, 4332, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3) != (0)) __PYX_ERR(5, 4332, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + + /* 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_701stream_MACDFIX(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_700stream_MACDFIX, "stream_MACDFIX(ndarray real, int signalperiod=-0x80000000)\n\nMACDFIX(real[, signalperiod=?])\n\nMoving Average Convergence/Divergence Fix 12/26 (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n signalperiod: 9\nOutputs:\n macd\n macdsignal\n macdhist"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_701stream_MACDFIX = {"stream_MACDFIX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_701stream_MACDFIX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_700stream_MACDFIX}; +static PyObject *__pyx_pw_5talib_7_ta_lib_701stream_MACDFIX(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_signalperiod; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_MACDFIX (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4334, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4334, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4334, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MACDFIX", 0) < (0)) __PYX_ERR(5, 4334, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MACDFIX", 0, 1, 2, i); __PYX_ERR(5, 4334, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4334, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4334, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4336, __pyx_L3_error) + } else { + __pyx_v_signalperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_MACDFIX", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4334, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4336, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_700stream_MACDFIX(__pyx_self, __pyx_v_real, __pyx_v_signalperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_700stream_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(5, 4359, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[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_mstate_global->__pyx_n_u_TA_MACDFIX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4366, __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(5, 4367, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4367, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4367, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4367, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 4367, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2) != (0)) __PYX_ERR(5, 4367, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3) != (0)) __PYX_ERR(5, 4367, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + + /* 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_703stream_MAMA(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_702stream_MAMA, "stream_MAMA(ndarray real, double fastlimit=-4e37, double slowlimit=-4e37)\n\nMAMA(real[, fastlimit=?, slowlimit=?])\n\nMESA Adaptive Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastlimit: 0.5\n slowlimit: 0.05\nOutputs:\n mama\n fama"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_703stream_MAMA = {"stream_MAMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_703stream_MAMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_702stream_MAMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_703stream_MAMA(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + double __pyx_v_fastlimit; + double __pyx_v_slowlimit; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_MAMA (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastlimit,&__pyx_mstate_global->__pyx_n_u_slowlimit,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4369, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4369, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4369, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4369, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MAMA", 0) < (0)) __PYX_ERR(5, 4369, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MAMA", 0, 1, 3, i); __PYX_ERR(5, 4369, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4369, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4369, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4369, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_fastlimit = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fastlimit == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 4371, __pyx_L3_error) + } else { + __pyx_v_fastlimit = ((double)((double)-4e37)); + } + if (values[2]) { + __pyx_v_slowlimit = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_slowlimit == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 4371, __pyx_L3_error) + } else { + __pyx_v_slowlimit = ((double)((double)-4e37)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_MAMA", 0, 1, 3, __pyx_nargs); __PYX_ERR(5, 4369, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4371, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_702stream_MAMA(__pyx_self, __pyx_v_real, __pyx_v_fastlimit, __pyx_v_slowlimit); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_702stream_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(5, 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_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[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_mstate_global->__pyx_n_u_TA_MAMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4399, __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(5, 4400, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outfama); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4400, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4400, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 4400, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2) != (0)) __PYX_ERR(5, 4400, __pyx_L1_error); + __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_705stream_MARKETFI(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_704stream_MARKETFI, "stream_MARKETFI(ndarray high, ndarray low, ndarray volume)\n\nMARKETFI(high, low, volume)\n\nMarket Facilitation Index (Volume Indicators)\n\nInputs:\n prices: ['high', 'low', 'volume']\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_705stream_MARKETFI = {"stream_MARKETFI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_705stream_MARKETFI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_704stream_MARKETFI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_705stream_MARKETFI(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_volume = 0; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_MARKETFI (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_volume,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4402, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4402, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4402, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4402, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MARKETFI", 0) < (0)) __PYX_ERR(5, 4402, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MARKETFI", 1, 3, 3, i); __PYX_ERR(5, 4402, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4402, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4402, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4402, __pyx_L3_error) + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_volume = ((PyArrayObject *)values[2]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_MARKETFI", 1, 3, 3, __pyx_nargs); __PYX_ERR(5, 4402, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_MARKETFI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 4404, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 4404, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 4404, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_704stream_MARKETFI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_volume); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_704stream_MARKETFI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, 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_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_MARKETFI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_volume); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4423, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4425, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4427, __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_f_5numpy_7ndarray_4data_data(__pyx_v_volume)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4429, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + __pyx_v_retCode = TA_MARKETFI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_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_mstate_global->__pyx_n_u_TA_MARKETFI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4432, __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(5, 4433, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_MARKETFI", __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_volume); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_707stream_MASSI(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_706stream_MASSI, "stream_MASSI(ndarray high, ndarray low, int fastperiod=-0x80000000, int slowperiod=-0x80000000)\n\nMASSI(high, low[, fastperiod=?, slowperiod=?])\n\nMass Index (Volatility Indicators)\n\nInputs:\n prices: ['high', 'low']\nParameters:\n fastperiod: 9\n slowperiod: 25\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_707stream_MASSI = {"stream_MASSI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_707stream_MASSI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_706stream_MASSI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_707stream_MASSI(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_MASSI (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4435, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4435, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4435, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4435, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4435, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MASSI", 0) < (0)) __PYX_ERR(5, 4435, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MASSI", 0, 2, 4, i); __PYX_ERR(5, 4435, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4435, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4435, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4435, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4435, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4437, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)((int)-2147483648)); + } + if (values[3]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4437, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_MASSI", 0, 2, 4, __pyx_nargs); __PYX_ERR(5, 4435, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_MASSI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 4437, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 4437, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_706stream_MASSI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_fastperiod, __pyx_v_slowperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_706stream_MASSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod) { + npy_intp __pyx_v_length; + 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_MASSI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4458, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4460, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4462, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + __pyx_v_retCode = TA_MASSI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_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_mstate_global->__pyx_n_u_TA_MASSI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4465, __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(5, 4466, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_MASSI", __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_709stream_MAVP(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_708stream_MAVP, "stream_MAVP(ndarray real, ndarray periods, int minperiod=-0x80000000, int maxperiod=-0x80000000, int matype=0)\n\nMAVP(real, periods[, minperiod=?, maxperiod=?, matype=?])\n\nMoving average with variable period (Overlap Studies)\n\nInputs:\n real: (any ndarray)\n periods: (any ndarray)\nParameters:\n minperiod: 2\n maxperiod: 30\n matype: 0 (Simple Moving Average)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_709stream_MAVP = {"stream_MAVP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_709stream_MAVP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_708stream_MAVP}; +static PyObject *__pyx_pw_5talib_7_ta_lib_709stream_MAVP(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_periods = 0; + int __pyx_v_minperiod; + int __pyx_v_maxperiod; + int __pyx_v_matype; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[5] = {0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_MAVP (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_periods,&__pyx_mstate_global->__pyx_n_u_minperiod,&__pyx_mstate_global->__pyx_n_u_maxperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4468, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 4468, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4468, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4468, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4468, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4468, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MAVP", 0) < (0)) __PYX_ERR(5, 4468, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MAVP", 0, 2, 5, i); __PYX_ERR(5, 4468, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 4468, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4468, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4468, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4468, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4468, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_periods = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_minperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_minperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4470, __pyx_L3_error) + } else { + __pyx_v_minperiod = ((int)((int)-2147483648)); + } + if (values[3]) { + __pyx_v_maxperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_maxperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4470, __pyx_L3_error) + } else { + __pyx_v_maxperiod = ((int)((int)-2147483648)); + } + if (values[4]) { + __pyx_v_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4470, __pyx_L3_error) + } else { + __pyx_v_matype = ((int)((int)0)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_MAVP", 0, 2, 5, __pyx_nargs); __PYX_ERR(5, 4468, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_MAVP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4470, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_periods), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "periods", 0))) __PYX_ERR(5, 4470, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_708stream_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; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_708stream_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(5, 4493, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_periods)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4495, __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_f_5numpy_7ndarray_4data_data(__pyx_v_periods)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real, __pyx_v_periods); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4497, __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_mstate_global->__pyx_n_u_TA_MAVP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4500, __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(5, 4501, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __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_711stream_MAX(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_710stream_MAX, "stream_MAX(ndarray real, int timeperiod=-0x80000000)\n\nMAX(real[, timeperiod=?])\n\nHighest value over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_711stream_MAX = {"stream_MAX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_711stream_MAX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_710stream_MAX}; +static PyObject *__pyx_pw_5talib_7_ta_lib_711stream_MAX(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_MAX (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4503, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4503, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4503, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MAX", 0) < (0)) __PYX_ERR(5, 4503, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MAX", 0, 1, 2, i); __PYX_ERR(5, 4503, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4503, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4503, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4505, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_MAX", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4503, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4505, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_710stream_MAX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_710stream_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(5, 4524, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[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_mstate_global->__pyx_n_u_TA_MAX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4529, __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(5, 4530, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __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_713stream_MAXINDEX(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_712stream_MAXINDEX, "stream_MAXINDEX(ndarray real, int timeperiod=-0x80000000)\n\nMAXINDEX(real[, timeperiod=?])\n\nIndex of highest value over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n integer"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_713stream_MAXINDEX = {"stream_MAXINDEX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_713stream_MAXINDEX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_712stream_MAXINDEX}; +static PyObject *__pyx_pw_5talib_7_ta_lib_713stream_MAXINDEX(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_MAXINDEX (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4532, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4532, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4532, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MAXINDEX", 0) < (0)) __PYX_ERR(5, 4532, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MAXINDEX", 0, 1, 2, i); __PYX_ERR(5, 4532, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4532, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4532, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4534, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_MAXINDEX", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4532, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4534, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_712stream_MAXINDEX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_712stream_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(5, 4553, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[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_mstate_global->__pyx_n_u_TA_MAXINDEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4558, __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_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4559, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __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_715stream_MEDPRICE(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_714stream_MEDPRICE, "stream_MEDPRICE(ndarray high, ndarray low)\n\nMEDPRICE(high, low)\n\nMedian Price (Price Transform)\n\nInputs:\n prices: ['high', 'low']\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_715stream_MEDPRICE = {"stream_MEDPRICE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_715stream_MEDPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_714stream_MEDPRICE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_715stream_MEDPRICE(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_MEDPRICE (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4561, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4561, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4561, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MEDPRICE", 0) < (0)) __PYX_ERR(5, 4561, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MEDPRICE", 1, 2, 2, i); __PYX_ERR(5, 4561, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4561, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4561, __pyx_L3_error) + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_MEDPRICE", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 4561, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 4563, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 4563, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_714stream_MEDPRICE(__pyx_self, __pyx_v_high, __pyx_v_low); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_714stream_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(5, 4581, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4583, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4585, __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_mstate_global->__pyx_n_u_TA_MEDPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4588, __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(5, 4589, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __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_717stream_MFI(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_716stream_MFI, "stream_MFI(ndarray high, ndarray low, ndarray close, ndarray volume, int timeperiod=-0x80000000)\n\nMFI(high, low, close, volume[, timeperiod=?])\n\nMoney Flow Index (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low', 'close', 'volume']\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_717stream_MFI = {"stream_MFI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_717stream_MFI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_716stream_MFI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_717stream_MFI(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + PyArrayObject *__pyx_v_volume = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[5] = {0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_MFI (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4591, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 4591, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4591, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4591, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4591, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4591, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MFI", 0) < (0)) __PYX_ERR(5, 4591, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MFI", 0, 4, 5, i); __PYX_ERR(5, 4591, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 4591, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4591, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4591, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4591, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4591, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + __pyx_v_volume = ((PyArrayObject *)values[3]); + if (values[4]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4593, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_MFI", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 4591, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 4593, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 4593, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 4593, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 4593, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_716stream_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; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_716stream_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(5, 4615, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4617, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4619, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4621, __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_f_5numpy_7ndarray_4data_data(__pyx_v_volume)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4623, __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_mstate_global->__pyx_n_u_TA_MFI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4626, __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(5, 4627, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __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_719stream_MIDPOINT(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_718stream_MIDPOINT, "stream_MIDPOINT(ndarray real, int timeperiod=-0x80000000)\n\nMIDPOINT(real[, timeperiod=?])\n\nMidPoint over period (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_719stream_MIDPOINT = {"stream_MIDPOINT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_719stream_MIDPOINT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_718stream_MIDPOINT}; +static PyObject *__pyx_pw_5talib_7_ta_lib_719stream_MIDPOINT(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_MIDPOINT (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4629, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4629, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4629, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MIDPOINT", 0) < (0)) __PYX_ERR(5, 4629, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MIDPOINT", 0, 1, 2, i); __PYX_ERR(5, 4629, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4629, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4629, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4631, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_MIDPOINT", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4629, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4631, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_718stream_MIDPOINT(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_718stream_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(5, 4650, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[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_mstate_global->__pyx_n_u_TA_MIDPOINT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4655, __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(5, 4656, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __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_721stream_MIDPRICE(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_720stream_MIDPRICE, "stream_MIDPRICE(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nMIDPRICE(high, low[, timeperiod=?])\n\nMidpoint Price over period (Overlap Studies)\n\nInputs:\n prices: ['high', 'low']\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_721stream_MIDPRICE = {"stream_MIDPRICE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_721stream_MIDPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_720stream_MIDPRICE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_721stream_MIDPRICE(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_MIDPRICE (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4658, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4658, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4658, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4658, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MIDPRICE", 0) < (0)) __PYX_ERR(5, 4658, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MIDPRICE", 0, 2, 3, i); __PYX_ERR(5, 4658, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4658, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4658, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4658, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4660, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_MIDPRICE", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 4658, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 4660, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 4660, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_720stream_MIDPRICE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_720stream_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(5, 4680, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4682, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4684, __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_mstate_global->__pyx_n_u_TA_MIDPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4687, __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(5, 4688, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __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_723stream_MIN(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_722stream_MIN, "stream_MIN(ndarray real, int timeperiod=-0x80000000)\n\nMIN(real[, timeperiod=?])\n\nLowest value over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_723stream_MIN = {"stream_MIN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_723stream_MIN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_722stream_MIN}; +static PyObject *__pyx_pw_5talib_7_ta_lib_723stream_MIN(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_MIN (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4690, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4690, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4690, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MIN", 0) < (0)) __PYX_ERR(5, 4690, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MIN", 0, 1, 2, i); __PYX_ERR(5, 4690, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4690, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4690, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4692, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_MIN", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4690, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_MIN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4692, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_722stream_MIN(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_722stream_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(5, 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_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[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_mstate_global->__pyx_n_u_TA_MIN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4716, __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(5, 4717, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __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_725stream_MININDEX(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_724stream_MININDEX, "stream_MININDEX(ndarray real, int timeperiod=-0x80000000)\n\nMININDEX(real[, timeperiod=?])\n\nIndex of lowest value over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n integer"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_725stream_MININDEX = {"stream_MININDEX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_725stream_MININDEX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_724stream_MININDEX}; +static PyObject *__pyx_pw_5talib_7_ta_lib_725stream_MININDEX(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_MININDEX (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4719, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4719, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4719, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MININDEX", 0) < (0)) __PYX_ERR(5, 4719, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MININDEX", 0, 1, 2, i); __PYX_ERR(5, 4719, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4719, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4719, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4721, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_MININDEX", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4719, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_MININDEX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4721, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_724stream_MININDEX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_724stream_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(5, 4740, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[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_mstate_global->__pyx_n_u_TA_MININDEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4745, __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_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4746, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __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_727stream_MINMAX(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_726stream_MINMAX, "stream_MINMAX(ndarray real, int timeperiod=-0x80000000)\n\nMINMAX(real[, timeperiod=?])\n\nLowest and highest values over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n min\n max"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_727stream_MINMAX = {"stream_MINMAX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_727stream_MINMAX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_726stream_MINMAX}; +static PyObject *__pyx_pw_5talib_7_ta_lib_727stream_MINMAX(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_MINMAX (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4748, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4748, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4748, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MINMAX", 0) < (0)) __PYX_ERR(5, 4748, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MINMAX", 0, 1, 2, i); __PYX_ERR(5, 4748, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4748, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4748, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4750, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_MINMAX", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4748, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_MINMAX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4750, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_726stream_MINMAX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_726stream_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(5, 4771, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[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_mstate_global->__pyx_n_u_TA_MINMAX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4777, __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(5, 4778, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outmax); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4778, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4778, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 4778, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2) != (0)) __PYX_ERR(5, 4778, __pyx_L1_error); + __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_729stream_MINMAXINDEX(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_728stream_MINMAXINDEX, "stream_MINMAXINDEX(ndarray real, int timeperiod=-0x80000000)\n\nMINMAXINDEX(real[, timeperiod=?])\n\nIndexes of lowest and highest values over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n minidx\n maxidx"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_729stream_MINMAXINDEX = {"stream_MINMAXINDEX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_729stream_MINMAXINDEX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_728stream_MINMAXINDEX}; +static PyObject *__pyx_pw_5talib_7_ta_lib_729stream_MINMAXINDEX(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_MINMAXINDEX (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4780, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4780, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4780, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MINMAXINDEX", 0) < (0)) __PYX_ERR(5, 4780, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MINMAXINDEX", 0, 1, 2, i); __PYX_ERR(5, 4780, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4780, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4780, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4782, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_MINMAXINDEX", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4780, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_MINMAXINDEX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4782, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_728stream_MINMAXINDEX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_728stream_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(5, 4803, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[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_mstate_global->__pyx_n_u_TA_MINMAXINDEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4809, __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_PyLong_From_int(__pyx_v_outminidx); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4810, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outmaxidx); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4810, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4810, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 4810, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2) != (0)) __PYX_ERR(5, 4810, __pyx_L1_error); + __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_731stream_MINUS_DI(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_730stream_MINUS_DI, "stream_MINUS_DI(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nMINUS_DI(high, low, close[, timeperiod=?])\n\nMinus Directional Indicator (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_731stream_MINUS_DI = {"stream_MINUS_DI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_731stream_MINUS_DI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_730stream_MINUS_DI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_731stream_MINUS_DI(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_MINUS_DI (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4812, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4812, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4812, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4812, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4812, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MINUS_DI", 0) < (0)) __PYX_ERR(5, 4812, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MINUS_DI", 0, 3, 4, i); __PYX_ERR(5, 4812, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4812, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4812, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4812, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4812, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4814, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_MINUS_DI", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 4812, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 4814, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 4814, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 4814, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_730stream_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; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_730stream_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(5, 4835, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4837, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4839, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4841, __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_mstate_global->__pyx_n_u_TA_MINUS_DI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4844, __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(5, 4845, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __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_733stream_MINUS_DM(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_732stream_MINUS_DM, "stream_MINUS_DM(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nMINUS_DM(high, low[, timeperiod=?])\n\nMinus Directional Movement (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low']\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_733stream_MINUS_DM = {"stream_MINUS_DM", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_733stream_MINUS_DM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_732stream_MINUS_DM}; +static PyObject *__pyx_pw_5talib_7_ta_lib_733stream_MINUS_DM(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_MINUS_DM (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4847, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4847, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4847, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4847, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MINUS_DM", 0) < (0)) __PYX_ERR(5, 4847, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MINUS_DM", 0, 2, 3, i); __PYX_ERR(5, 4847, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4847, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4847, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4847, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4849, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_MINUS_DM", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 4847, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 4849, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 4849, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_732stream_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; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_732stream_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(5, 4869, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4871, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4873, __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_mstate_global->__pyx_n_u_TA_MINUS_DM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4876, __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(5, 4877, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __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_735stream_MOM(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_734stream_MOM, "stream_MOM(ndarray real, int timeperiod=-0x80000000)\n\nMOM(real[, timeperiod=?])\n\nMomentum (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_735stream_MOM = {"stream_MOM", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_735stream_MOM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_734stream_MOM}; +static PyObject *__pyx_pw_5talib_7_ta_lib_735stream_MOM(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_MOM (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4879, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4879, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4879, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MOM", 0) < (0)) __PYX_ERR(5, 4879, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MOM", 0, 1, 2, i); __PYX_ERR(5, 4879, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4879, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4879, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4881, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_MOM", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4879, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4881, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_734stream_MOM(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_734stream_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(5, 4900, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[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_mstate_global->__pyx_n_u_TA_MOM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4905, __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(5, 4906, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __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_737stream_MULT(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_736stream_MULT, "stream_MULT(ndarray real0, ndarray real1)\n\nMULT(real0, real1)\n\nVector Arithmetic Mult (Math Operators)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_737stream_MULT = {"stream_MULT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_737stream_MULT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_736stream_MULT}; +static PyObject *__pyx_pw_5talib_7_ta_lib_737stream_MULT(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real0 = 0; + PyArrayObject *__pyx_v_real1 = 0; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_MULT (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4908, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4908, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4908, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MULT", 0) < (0)) __PYX_ERR(5, 4908, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MULT", 1, 2, 2, i); __PYX_ERR(5, 4908, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4908, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4908, __pyx_L3_error) + } + __pyx_v_real0 = ((PyArrayObject *)values[0]); + __pyx_v_real1 = ((PyArrayObject *)values[1]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_MULT", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 4908, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(5, 4910, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(5, 4910, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_736stream_MULT(__pyx_self, __pyx_v_real0, __pyx_v_real1); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_736stream_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(5, 4929, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real0)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4931, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real1)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4933, __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_mstate_global->__pyx_n_u_TA_MULT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4936, __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(5, 4937, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __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_739stream_NATR(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_738stream_NATR, "stream_NATR(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nNATR(high, low, close[, timeperiod=?])\n\nNormalized Average True Range (Volatility Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_739stream_NATR = {"stream_NATR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_739stream_NATR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_738stream_NATR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_739stream_NATR(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_NATR (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4939, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4939, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4939, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4939, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4939, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_NATR", 0) < (0)) __PYX_ERR(5, 4939, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_NATR", 0, 3, 4, i); __PYX_ERR(5, 4939, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4939, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4939, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4939, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4939, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4941, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_NATR", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 4939, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_NATR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 4941, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 4941, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 4941, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_738stream_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; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_738stream_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(5, 4962, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4964, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4966, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4968, __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_mstate_global->__pyx_n_u_TA_NATR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4971, __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(5, 4972, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __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_741stream_NVI(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_740stream_NVI, "stream_NVI(ndarray close, ndarray volume)\n\nNVI(close, volume)\n\nNegative Volume Index (Volume Indicators)\n\nInputs:\n prices: ['close', 'volume']\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_741stream_NVI = {"stream_NVI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_741stream_NVI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_740stream_NVI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_741stream_NVI(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_close = 0; + PyArrayObject *__pyx_v_volume = 0; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_NVI (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4974, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4974, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4974, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_NVI", 0) < (0)) __PYX_ERR(5, 4974, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_NVI", 1, 2, 2, i); __PYX_ERR(5, 4974, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4974, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4974, __pyx_L3_error) + } + __pyx_v_close = ((PyArrayObject *)values[0]); + __pyx_v_volume = ((PyArrayObject *)values[1]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_NVI", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 4974, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_NVI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 4976, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 4976, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_740stream_NVI(__pyx_self, __pyx_v_close, __pyx_v_volume); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_740stream_NVI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + 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_NVI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_INCREF((PyObject *)__pyx_v_volume); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4994, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4996, __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_f_5numpy_7ndarray_4data_data(__pyx_v_volume)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4998, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + __pyx_v_retCode = TA_NVI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __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_mstate_global->__pyx_n_u_TA_NVI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5001, __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(5, 5002, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_NVI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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_743stream_OBV(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_742stream_OBV, "stream_OBV(ndarray real, ndarray volume)\n\nOBV(real, volume)\n\nOn Balance Volume (Volume Indicators)\n\nInputs:\n real: (any ndarray)\n prices: ['volume']\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_743stream_OBV = {"stream_OBV", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_743stream_OBV, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_742stream_OBV}; +static PyObject *__pyx_pw_5talib_7_ta_lib_743stream_OBV(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_volume = 0; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_OBV (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_volume,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5004, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5004, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5004, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_OBV", 0) < (0)) __PYX_ERR(5, 5004, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_OBV", 1, 2, 2, i); __PYX_ERR(5, 5004, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5004, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5004, __pyx_L3_error) + } + __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_volume = ((PyArrayObject *)values[1]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_OBV", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 5004, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_OBV", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5006, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 5006, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_742stream_OBV(__pyx_self, __pyx_v_real, __pyx_v_volume); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_742stream_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(5, 5025, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5027, __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_f_5numpy_7ndarray_4data_data(__pyx_v_volume)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5029, __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_mstate_global->__pyx_n_u_TA_OBV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5032, __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(5, 5033, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __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_745stream_PERCENTILE(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_744stream_PERCENTILE, "stream_PERCENTILE(ndarray real, int timeperiod=-0x80000000, double percentile=50.0)\n\nPERCENTILE(real[, timeperiod=?, percentile=?])\n\nPercentile (nearest rank) (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\n percentile: 50.0\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_745stream_PERCENTILE = {"stream_PERCENTILE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_745stream_PERCENTILE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_744stream_PERCENTILE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_745stream_PERCENTILE(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + double __pyx_v_percentile; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_PERCENTILE (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_percentile,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5035, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5035, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5035, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5035, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_PERCENTILE", 0) < (0)) __PYX_ERR(5, 5035, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_PERCENTILE", 0, 1, 3, i); __PYX_ERR(5, 5035, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5035, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5035, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5035, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5037, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_percentile = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_percentile == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5037, __pyx_L3_error) + } else { + __pyx_v_percentile = ((double)((double)50.0)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_PERCENTILE", 0, 1, 3, __pyx_nargs); __PYX_ERR(5, 5035, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_PERCENTILE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5037, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_744stream_PERCENTILE(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_percentile); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_744stream_PERCENTILE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_percentile) { + 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_PERCENTILE", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5057, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + __pyx_v_retCode = TA_PERCENTILE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, __pyx_v_percentile, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTILE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5062, __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(5, 5063, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_PERCENTILE", __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_747stream_PERCENTRANK(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_746stream_PERCENTRANK, "stream_PERCENTRANK(ndarray real, int timeperiod=-0x80000000)\n\nPERCENTRANK(real[, timeperiod=?])\n\nPercent Rank (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 100\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_747stream_PERCENTRANK = {"stream_PERCENTRANK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_747stream_PERCENTRANK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_746stream_PERCENTRANK}; +static PyObject *__pyx_pw_5talib_7_ta_lib_747stream_PERCENTRANK(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_PERCENTRANK (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5065, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5065, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5065, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_PERCENTRANK", 0) < (0)) __PYX_ERR(5, 5065, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_PERCENTRANK", 0, 1, 2, i); __PYX_ERR(5, 5065, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5065, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5065, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5067, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_PERCENTRANK", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5065, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_PERCENTRANK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5067, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_746stream_PERCENTRANK(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_746stream_PERCENTRANK(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_PERCENTRANK", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5086, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + __pyx_v_retCode = TA_PERCENTRANK((((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_mstate_global->__pyx_n_u_TA_PERCENTRANK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5091, __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(5, 5092, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_PERCENTRANK", __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_749stream_PLUS_DI(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_748stream_PLUS_DI, "stream_PLUS_DI(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nPLUS_DI(high, low, close[, timeperiod=?])\n\nPlus Directional Indicator (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_749stream_PLUS_DI = {"stream_PLUS_DI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_749stream_PLUS_DI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_748stream_PLUS_DI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_749stream_PLUS_DI(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_PLUS_DI (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5094, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5094, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5094, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5094, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5094, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_PLUS_DI", 0) < (0)) __PYX_ERR(5, 5094, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_PLUS_DI", 0, 3, 4, i); __PYX_ERR(5, 5094, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5094, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5094, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5094, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5094, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5096, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_PLUS_DI", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 5094, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 5096, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 5096, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 5096, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_748stream_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; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_748stream_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(5, 5117, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5119, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5121, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5123, __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_mstate_global->__pyx_n_u_TA_PLUS_DI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5126, __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(5, 5127, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __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_751stream_PLUS_DM(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_750stream_PLUS_DM, "stream_PLUS_DM(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nPLUS_DM(high, low[, timeperiod=?])\n\nPlus Directional Movement (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low']\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_751stream_PLUS_DM = {"stream_PLUS_DM", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_751stream_PLUS_DM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_750stream_PLUS_DM}; +static PyObject *__pyx_pw_5talib_7_ta_lib_751stream_PLUS_DM(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_PLUS_DM (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5129, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5129, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5129, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5129, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_PLUS_DM", 0) < (0)) __PYX_ERR(5, 5129, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_PLUS_DM", 0, 2, 3, i); __PYX_ERR(5, 5129, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5129, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5129, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5129, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5131, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_PLUS_DM", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 5129, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_PLUS_DM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 5131, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 5131, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_750stream_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; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_750stream_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(5, 5151, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5153, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5155, __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_mstate_global->__pyx_n_u_TA_PLUS_DM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5158, __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(5, 5159, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __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_753stream_PPO(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_752stream_PPO, "stream_PPO(ndarray real, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int matype=1)\n\nPPO(real[, fastperiod=?, slowperiod=?, matype=?])\n\nPercentage Price Oscillator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastperiod: 12\n slowperiod: 26\n matype: 1 (Exponential Moving Average)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_753stream_PPO = {"stream_PPO", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_753stream_PPO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_752stream_PPO}; +static PyObject *__pyx_pw_5talib_7_ta_lib_753stream_PPO(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + int __pyx_v_matype; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_PPO (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5161, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5161, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5161, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5161, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5161, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_PPO", 0) < (0)) __PYX_ERR(5, 5161, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_PPO", 0, 1, 4, i); __PYX_ERR(5, 5161, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5161, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5161, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5161, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5161, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5163, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5163, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)((int)-2147483648)); + } + if (values[3]) { + __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5163, __pyx_L3_error) + } else { + __pyx_v_matype = ((int)((int)1)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_PPO", 0, 1, 4, __pyx_nargs); __PYX_ERR(5, 5161, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5163, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_752stream_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; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_752stream_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(5, 5184, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[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_mstate_global->__pyx_n_u_TA_PPO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5189, __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(5, 5190, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __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_755stream_PVI(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_754stream_PVI, "stream_PVI(ndarray close, ndarray volume)\n\nPVI(close, volume)\n\nPositive Volume Index (Volume Indicators)\n\nInputs:\n prices: ['close', 'volume']\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_755stream_PVI = {"stream_PVI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_755stream_PVI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_754stream_PVI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_755stream_PVI(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_close = 0; + PyArrayObject *__pyx_v_volume = 0; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_PVI (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5192, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5192, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5192, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_PVI", 0) < (0)) __PYX_ERR(5, 5192, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_PVI", 1, 2, 2, i); __PYX_ERR(5, 5192, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5192, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5192, __pyx_L3_error) + } + __pyx_v_close = ((PyArrayObject *)values[0]); + __pyx_v_volume = ((PyArrayObject *)values[1]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_PVI", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 5192, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_PVI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 5194, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 5194, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_754stream_PVI(__pyx_self, __pyx_v_close, __pyx_v_volume); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_754stream_PVI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + 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_PVI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_INCREF((PyObject *)__pyx_v_volume); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5214, __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_f_5numpy_7ndarray_4data_data(__pyx_v_volume)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5216, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + __pyx_v_retCode = TA_PVI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __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_mstate_global->__pyx_n_u_TA_PVI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5219, __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(5, 5220, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_PVI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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_757stream_PVO(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_756stream_PVO, "stream_PVO(ndarray volume, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int matype=1)\n\nPVO(volume[, fastperiod=?, slowperiod=?, matype=?])\n\nPercentage Volume Oscillator (Volume Indicators)\n\nInputs:\n prices: ['volume']\nParameters:\n fastperiod: 12\n slowperiod: 26\n matype: 1 (Exponential Moving Average)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_757stream_PVO = {"stream_PVO", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_757stream_PVO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_756stream_PVO}; +static PyObject *__pyx_pw_5talib_7_ta_lib_757stream_PVO(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_volume = 0; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + int __pyx_v_matype; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_PVO (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5222, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5222, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5222, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5222, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5222, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_PVO", 0) < (0)) __PYX_ERR(5, 5222, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_PVO", 0, 1, 4, i); __PYX_ERR(5, 5222, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5222, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5222, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5222, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5222, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_volume = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5224, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5224, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)((int)-2147483648)); + } + if (values[3]) { + __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5224, __pyx_L3_error) + } else { + __pyx_v_matype = ((int)((int)1)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_PVO", 0, 1, 4, __pyx_nargs); __PYX_ERR(5, 5222, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_PVO", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 5224, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_756stream_PVO(__pyx_self, __pyx_v_volume, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_756stream_PVO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_volume, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + 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; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_PVO", 0); + __Pyx_INCREF((PyObject *)__pyx_v_volume); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5245, __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_f_5numpy_7ndarray_4data_data(__pyx_v_volume)); + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_volume)[0]); + + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + __pyx_v_retCode = TA_PVO((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_volume_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_mstate_global->__pyx_n_u_TA_PVO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5250, __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(5, 5251, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_PVO", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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_759stream_PVT(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_758stream_PVT, "stream_PVT(ndarray close, ndarray volume)\n\nPVT(close, volume)\n\nPrice Volume Trend (Volume Indicators)\n\nInputs:\n prices: ['close', 'volume']\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_759stream_PVT = {"stream_PVT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_759stream_PVT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_758stream_PVT}; +static PyObject *__pyx_pw_5talib_7_ta_lib_759stream_PVT(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_close = 0; + PyArrayObject *__pyx_v_volume = 0; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_PVT (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5253, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5253, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5253, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_PVT", 0) < (0)) __PYX_ERR(5, 5253, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_PVT", 1, 2, 2, i); __PYX_ERR(5, 5253, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5253, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5253, __pyx_L3_error) + } + __pyx_v_close = ((PyArrayObject *)values[0]); + __pyx_v_volume = ((PyArrayObject *)values[1]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_PVT", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 5253, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_PVT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 5255, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 5255, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_758stream_PVT(__pyx_self, __pyx_v_close, __pyx_v_volume); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_758stream_PVT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + 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_PVT", 0); + __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_INCREF((PyObject *)__pyx_v_volume); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5273, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5275, __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_f_5numpy_7ndarray_4data_data(__pyx_v_volume)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5277, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + __pyx_v_retCode = TA_PVT((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __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_mstate_global->__pyx_n_u_TA_PVT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5280, __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(5, 5281, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_PVT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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_761stream_QSTICK(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_760stream_QSTICK, "stream_QSTICK(ndarray open, ndarray close, int timeperiod=-0x80000000)\n\nQSTICK(open, close[, timeperiod=?])\n\nQstick (Momentum Indicators)\n\nInputs:\n prices: ['open', 'close']\nParameters:\n timeperiod: 10\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_761stream_QSTICK = {"stream_QSTICK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_761stream_QSTICK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_760stream_QSTICK}; +static PyObject *__pyx_pw_5talib_7_ta_lib_761stream_QSTICK(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_QSTICK (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5283, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5283, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5283, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5283, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_QSTICK", 0) < (0)) __PYX_ERR(5, 5283, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_QSTICK", 0, 2, 3, i); __PYX_ERR(5, 5283, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5283, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5283, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5283, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_close = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5285, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_QSTICK", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 5283, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_QSTICK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 5285, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 5285, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_760stream_QSTICK(__pyx_self, __pyx_v_open, __pyx_v_close, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_760stream_QSTICK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_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_QSTICK", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5305, __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_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5307, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_open, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5309, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + __pyx_v_retCode = TA_QSTICK((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_QSTICK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5312, __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(5, 5313, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_QSTICK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __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_763stream_RMA(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_762stream_RMA, "stream_RMA(ndarray real, int timeperiod=-0x80000000)\n\nRMA(real[, timeperiod=?])\n\nWilder's Smoothed Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_763stream_RMA = {"stream_RMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_763stream_RMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_762stream_RMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_763stream_RMA(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_RMA (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5315, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5315, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5315, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_RMA", 0) < (0)) __PYX_ERR(5, 5315, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_RMA", 0, 1, 2, i); __PYX_ERR(5, 5315, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5315, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5315, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5317, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_RMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5315, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_RMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5317, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_762stream_RMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_762stream_RMA(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_RMA", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5336, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + __pyx_v_retCode = TA_RMA((((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_mstate_global->__pyx_n_u_TA_RMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5341, __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(5, 5342, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_RMA", __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_765stream_ROC(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_764stream_ROC, "stream_ROC(ndarray real, int timeperiod=-0x80000000)\n\nROC(real[, timeperiod=?])\n\nRate of change : ((real/prevPrice)-1)*100 (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_765stream_ROC = {"stream_ROC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_765stream_ROC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_764stream_ROC}; +static PyObject *__pyx_pw_5talib_7_ta_lib_765stream_ROC(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_ROC (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5344, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5344, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5344, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_ROC", 0) < (0)) __PYX_ERR(5, 5344, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_ROC", 0, 1, 2, i); __PYX_ERR(5, 5344, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5344, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5344, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5346, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_ROC", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5344, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_ROC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5346, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_764stream_ROC(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_764stream_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(5, 5365, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[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_mstate_global->__pyx_n_u_TA_ROC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5370, __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(5, 5371, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __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_767stream_ROCP(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_766stream_ROCP, "stream_ROCP(ndarray real, int timeperiod=-0x80000000)\n\nROCP(real[, timeperiod=?])\n\nRate of change Percentage: (real-prevPrice)/prevPrice (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_767stream_ROCP = {"stream_ROCP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_767stream_ROCP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_766stream_ROCP}; +static PyObject *__pyx_pw_5talib_7_ta_lib_767stream_ROCP(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_ROCP (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5373, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5373, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5373, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_ROCP", 0) < (0)) __PYX_ERR(5, 5373, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_ROCP", 0, 1, 2, i); __PYX_ERR(5, 5373, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5373, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5373, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5375, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_ROCP", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5373, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_ROCP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5375, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_766stream_ROCP(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_766stream_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(5, 5394, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[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_mstate_global->__pyx_n_u_TA_ROCP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5399, __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(5, 5400, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __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_769stream_ROCR(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_768stream_ROCR, "stream_ROCR(ndarray real, int timeperiod=-0x80000000)\n\nROCR(real[, timeperiod=?])\n\nRate of change ratio: (real/prevPrice) (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_769stream_ROCR = {"stream_ROCR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_769stream_ROCR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_768stream_ROCR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_769stream_ROCR(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_ROCR (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5402, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5402, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5402, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_ROCR", 0) < (0)) __PYX_ERR(5, 5402, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_ROCR", 0, 1, 2, i); __PYX_ERR(5, 5402, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5402, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5402, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5404, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_ROCR", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5402, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5404, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_768stream_ROCR(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_768stream_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(5, 5423, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[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_mstate_global->__pyx_n_u_TA_ROCR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5428, __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(5, 5429, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __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_771stream_ROCR100(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_770stream_ROCR100, "stream_ROCR100(ndarray real, int timeperiod=-0x80000000)\n\nROCR100(real[, timeperiod=?])\n\nRate of change ratio 100 scale: (real/prevPrice)*100 (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_771stream_ROCR100 = {"stream_ROCR100", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_771stream_ROCR100, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_770stream_ROCR100}; +static PyObject *__pyx_pw_5talib_7_ta_lib_771stream_ROCR100(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_ROCR100 (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5431, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5431, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5431, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_ROCR100", 0) < (0)) __PYX_ERR(5, 5431, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_ROCR100", 0, 1, 2, i); __PYX_ERR(5, 5431, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5431, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5431, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5433, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_ROCR100", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5431, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_ROCR100", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5433, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_770stream_ROCR100(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_770stream_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(5, 5452, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[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_mstate_global->__pyx_n_u_TA_ROCR100, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5457, __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(5, 5458, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __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_773stream_RSI(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_772stream_RSI, "stream_RSI(ndarray real, int timeperiod=-0x80000000)\n\nRSI(real[, timeperiod=?])\n\nRelative Strength Index (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_773stream_RSI = {"stream_RSI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_773stream_RSI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_772stream_RSI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_773stream_RSI(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_RSI (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5460, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5460, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5460, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_RSI", 0) < (0)) __PYX_ERR(5, 5460, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_RSI", 0, 1, 2, i); __PYX_ERR(5, 5460, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5460, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5460, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5462, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_RSI", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5460, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_RSI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5462, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_772stream_RSI(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_772stream_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(5, 5481, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[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_mstate_global->__pyx_n_u_TA_RSI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5486, __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(5, 5487, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __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_775stream_RVI(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_774stream_RVI, "stream_RVI(ndarray real, int timeperiod=-0x80000000, int stddevperiod=-0x80000000)\n\nRVI(real[, timeperiod=?, stddevperiod=?])\n\nRelative Volatility Index (Volatility Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\n stddevperiod: 10\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_775stream_RVI = {"stream_RVI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_775stream_RVI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_774stream_RVI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_775stream_RVI(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + int __pyx_v_stddevperiod; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_RVI (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_stddevperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5489, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5489, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5489, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5489, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_RVI", 0) < (0)) __PYX_ERR(5, 5489, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_RVI", 0, 1, 3, i); __PYX_ERR(5, 5489, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5489, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5489, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5489, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5491, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_stddevperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_stddevperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5491, __pyx_L3_error) + } else { + __pyx_v_stddevperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_RVI", 0, 1, 3, __pyx_nargs); __PYX_ERR(5, 5489, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_RVI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5491, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_774stream_RVI(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_stddevperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_774stream_RVI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_stddevperiod) { + 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_RVI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5511, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + __pyx_v_retCode = TA_RVI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, __pyx_v_stddevperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5516, __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(5, 5517, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_RVI", __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_777stream_RVOL(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_776stream_RVOL, "stream_RVOL(ndarray volume, int timeperiod=-0x80000000)\n\nRVOL(volume[, timeperiod=?])\n\nRelative Volume (Volume Indicators)\n\nInputs:\n prices: ['volume']\nParameters:\n timeperiod: 20\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_777stream_RVOL = {"stream_RVOL", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_777stream_RVOL, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_776stream_RVOL}; +static PyObject *__pyx_pw_5talib_7_ta_lib_777stream_RVOL(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_volume = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_RVOL (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5519, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5519, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5519, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_RVOL", 0) < (0)) __PYX_ERR(5, 5519, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_RVOL", 0, 1, 2, i); __PYX_ERR(5, 5519, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5519, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5519, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_volume = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5521, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_RVOL", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5519, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_RVOL", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 5521, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_776stream_RVOL(__pyx_self, __pyx_v_volume, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_776stream_RVOL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + 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; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_RVOL", 0); + __Pyx_INCREF((PyObject *)__pyx_v_volume); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5540, __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_f_5numpy_7ndarray_4data_data(__pyx_v_volume)); + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_volume)[0]); + + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + __pyx_v_retCode = TA_RVOL((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __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_mstate_global->__pyx_n_u_TA_RVOL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5545, __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(5, 5546, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_RVOL", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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_779stream_SAR(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_778stream_SAR, "stream_SAR(ndarray high, ndarray low, double acceleration=0.02, double maximum=0.2)\n\nSAR(high, low[, acceleration=?, maximum=?])\n\nParabolic SAR (Overlap Studies)\n\nInputs:\n prices: ['high', 'low']\nParameters:\n acceleration: 0.02\n maximum: 0.2\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_779stream_SAR = {"stream_SAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_779stream_SAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_778stream_SAR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_779stream_SAR(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + double __pyx_v_acceleration; + double __pyx_v_maximum; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_SAR (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_acceleration,&__pyx_mstate_global->__pyx_n_u_maximum,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5548, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5548, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5548, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5548, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5548, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_SAR", 0) < (0)) __PYX_ERR(5, 5548, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_SAR", 0, 2, 4, i); __PYX_ERR(5, 5548, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5548, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5548, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5548, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5548, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_acceleration = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_acceleration == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5550, __pyx_L3_error) + } else { + __pyx_v_acceleration = ((double)((double)0.02)); + } + if (values[3]) { + __pyx_v_maximum = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_maximum == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5550, __pyx_L3_error) + } else { + __pyx_v_maximum = ((double)((double)0.2)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_SAR", 0, 2, 4, __pyx_nargs); __PYX_ERR(5, 5548, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 5550, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 5550, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_778stream_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; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_778stream_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(5, 5571, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5573, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5575, __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_mstate_global->__pyx_n_u_TA_SAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5578, __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(5, 5579, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __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_781stream_SAREXT(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_780stream_SAREXT, "stream_SAREXT(ndarray high, ndarray low, double startvalue=-4e37, double offsetonreverse=-4e37, double accelerationinitlong=-4e37, double accelerationlong=-4e37, double accelerationmaxlong=-4e37, double accelerationinitshort=-4e37, double accelerationshort=-4e37, double accelerationmaxshort=-4e37)\n\nSAREXT(high, low[, startvalue=?, offsetonreverse=?, accelerationinitlong=?, accelerationlong=?, accelerationmaxlong=?, accelerationinitshort=?, accelerationshort=?, accelerationmaxshort=?])\n\nParabolic SAR - Extended (Overlap Studies)\n\nInputs:\n prices: ['high', 'low']\nParameters:\n startvalue: 0.0\n offsetonreverse: 0.0\n accelerationinitlong: 0.02\n accelerationlong: 0.02\n accelerationmaxlong: 0.2\n accelerationinitshort: 0.02\n accelerationshort: 0.02\n accelerationmaxshort: 0.2\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_781stream_SAREXT = {"stream_SAREXT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_781stream_SAREXT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_780stream_SAREXT}; +static PyObject *__pyx_pw_5talib_7_ta_lib_781stream_SAREXT(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + double __pyx_v_startvalue; + double __pyx_v_offsetonreverse; + double __pyx_v_accelerationinitlong; + double __pyx_v_accelerationlong; + double __pyx_v_accelerationmaxlong; + double __pyx_v_accelerationinitshort; + double __pyx_v_accelerationshort; + double __pyx_v_accelerationmaxshort; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_SAREXT (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_startvalue,&__pyx_mstate_global->__pyx_n_u_offsetonreverse,&__pyx_mstate_global->__pyx_n_u_accelerationinitlong,&__pyx_mstate_global->__pyx_n_u_accelerationlong,&__pyx_mstate_global->__pyx_n_u_accelerationmaxlong,&__pyx_mstate_global->__pyx_n_u_accelerationinitshort,&__pyx_mstate_global->__pyx_n_u_accelerationshort,&__pyx_mstate_global->__pyx_n_u_accelerationmaxshort,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5581, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 10: + values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(5, 5581, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 9: + values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(5, 5581, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 8: + values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(5, 5581, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 5581, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 5581, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 5581, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5581, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5581, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5581, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5581, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_SAREXT", 0) < (0)) __PYX_ERR(5, 5581, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_SAREXT", 0, 2, 10, i); __PYX_ERR(5, 5581, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 10: + values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(5, 5581, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 9: + values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(5, 5581, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 8: + values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(5, 5581, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 5581, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 5581, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 5581, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5581, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5581, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5581, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5581, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_startvalue = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_startvalue == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5583, __pyx_L3_error) + } else { + __pyx_v_startvalue = ((double)((double)-4e37)); + } + if (values[3]) { + __pyx_v_offsetonreverse = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_offsetonreverse == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5583, __pyx_L3_error) + } else { + __pyx_v_offsetonreverse = ((double)((double)-4e37)); + } + if (values[4]) { + __pyx_v_accelerationinitlong = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_accelerationinitlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5583, __pyx_L3_error) + } else { + __pyx_v_accelerationinitlong = ((double)((double)-4e37)); + } + if (values[5]) { + __pyx_v_accelerationlong = __Pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_accelerationlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5583, __pyx_L3_error) + } else { + __pyx_v_accelerationlong = ((double)((double)-4e37)); + } + if (values[6]) { + __pyx_v_accelerationmaxlong = __Pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_accelerationmaxlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5583, __pyx_L3_error) + } else { + __pyx_v_accelerationmaxlong = ((double)((double)-4e37)); + } + if (values[7]) { + __pyx_v_accelerationinitshort = __Pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_accelerationinitshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5583, __pyx_L3_error) + } else { + __pyx_v_accelerationinitshort = ((double)((double)-4e37)); + } + if (values[8]) { + __pyx_v_accelerationshort = __Pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_accelerationshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5583, __pyx_L3_error) + } else { + __pyx_v_accelerationshort = ((double)((double)-4e37)); + } + if (values[9]) { + __pyx_v_accelerationmaxshort = __Pyx_PyFloat_AsDouble(values[9]); if (unlikely((__pyx_v_accelerationmaxshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5583, __pyx_L3_error) + } else { + __pyx_v_accelerationmaxshort = ((double)((double)-4e37)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_SAREXT", 0, 2, 10, __pyx_nargs); __PYX_ERR(5, 5581, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 5583, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 5583, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_780stream_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; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_780stream_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(5, 5610, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5612, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5614, __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_mstate_global->__pyx_n_u_TA_SAREXT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5617, __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(5, 5618, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __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_783stream_SIN(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_782stream_SIN, "stream_SIN(ndarray real)\n\nSIN(real)\n\nVector Trigonometric Sin (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_783stream_SIN = {"stream_SIN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_783stream_SIN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_782stream_SIN}; +static PyObject *__pyx_pw_5talib_7_ta_lib_783stream_SIN(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_SIN (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5620, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5620, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_SIN", 0) < (0)) __PYX_ERR(5, 5620, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_SIN", 1, 1, 1, i); __PYX_ERR(5, 5620, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5620, __pyx_L3_error) + } + __pyx_v_real = ((PyArrayObject *)values[0]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_SIN", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 5620, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_SIN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5622, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_782stream_SIN(__pyx_self, __pyx_v_real); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_782stream_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(5, 5639, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[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_mstate_global->__pyx_n_u_TA_SIN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5644, __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(5, 5645, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __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_785stream_SINH(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_784stream_SINH, "stream_SINH(ndarray real)\n\nSINH(real)\n\nVector Trigonometric Sinh (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_785stream_SINH = {"stream_SINH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_785stream_SINH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_784stream_SINH}; +static PyObject *__pyx_pw_5talib_7_ta_lib_785stream_SINH(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_SINH (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5647, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5647, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_SINH", 0) < (0)) __PYX_ERR(5, 5647, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_SINH", 1, 1, 1, i); __PYX_ERR(5, 5647, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5647, __pyx_L3_error) + } + __pyx_v_real = ((PyArrayObject *)values[0]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_SINH", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 5647, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_SINH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5649, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_784stream_SINH(__pyx_self, __pyx_v_real); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_784stream_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(5, 5666, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[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_mstate_global->__pyx_n_u_TA_SINH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5671, __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(5, 5672, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __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_787stream_SMA(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_786stream_SMA, "stream_SMA(ndarray real, int timeperiod=-0x80000000)\n\nSMA(real[, timeperiod=?])\n\nSimple Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_787stream_SMA = {"stream_SMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_787stream_SMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_786stream_SMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_787stream_SMA(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_SMA (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5674, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5674, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5674, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_SMA", 0) < (0)) __PYX_ERR(5, 5674, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_SMA", 0, 1, 2, i); __PYX_ERR(5, 5674, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5674, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5674, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5676, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_SMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5674, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5676, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_786stream_SMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_786stream_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(5, 5695, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[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_mstate_global->__pyx_n_u_TA_SMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5700, __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(5, 5701, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __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_789stream_SMI(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_788stream_SMI, "stream_SMI(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int signalperiod=-0x80000000)\n\nSMI(high, low, close[, timeperiod=?, fastperiod=?, slowperiod=?, signalperiod=?])\n\nStochastic Momentum Index (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n timeperiod: 13\n fastperiod: 2\n slowperiod: 25\n signalperiod: 9\nOutputs:\n smi\n smisignal"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_789stream_SMI = {"stream_SMI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_789stream_SMI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_788stream_SMI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_789stream_SMI(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + int __pyx_v_signalperiod; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[7] = {0,0,0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_SMI (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5703, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 5703, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 5703, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 5703, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5703, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5703, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5703, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5703, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_SMI", 0) < (0)) __PYX_ERR(5, 5703, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_SMI", 0, 3, 7, i); __PYX_ERR(5, 5703, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 5703, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 5703, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 5703, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5703, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5703, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5703, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5703, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5705, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + if (values[4]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5705, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)((int)-2147483648)); + } + if (values[5]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5705, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)((int)-2147483648)); + } + if (values[6]) { + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5705, __pyx_L3_error) + } else { + __pyx_v_signalperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_SMI", 0, 3, 7, __pyx_nargs); __PYX_ERR(5, 5703, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_SMI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 5705, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 5705, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 5705, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_788stream_SMI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_788stream_SMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod) { + npy_intp __pyx_v_length; + 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_outsmi; + double __pyx_v_outsmisignal; + 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_SMI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5731, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5733, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5735, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5737, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_v_outsmi = __pyx_v_5talib_7_ta_lib_NaN; + + __pyx_v_outsmisignal = __pyx_v_5talib_7_ta_lib_NaN; + + __pyx_v_retCode = TA_SMI((((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_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outsmi), (&__pyx_v_outsmisignal)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5741, __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_outsmi); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5742, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outsmisignal); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5742, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 5742, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 5742, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(5, 5742, __pyx_L1_error); + __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_SMI", __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_791stream_SQRT(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_790stream_SQRT, "stream_SQRT(ndarray real)\n\nSQRT(real)\n\nVector Square Root (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_791stream_SQRT = {"stream_SQRT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_791stream_SQRT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_790stream_SQRT}; +static PyObject *__pyx_pw_5talib_7_ta_lib_791stream_SQRT(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_SQRT (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5744, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5744, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_SQRT", 0) < (0)) __PYX_ERR(5, 5744, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_SQRT", 1, 1, 1, i); __PYX_ERR(5, 5744, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5744, __pyx_L3_error) + } + __pyx_v_real = ((PyArrayObject *)values[0]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_SQRT", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 5744, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_SQRT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5746, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_790stream_SQRT(__pyx_self, __pyx_v_real); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_790stream_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(5, 5763, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[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_mstate_global->__pyx_n_u_TA_SQRT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5768, __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(5, 5769, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __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_793stream_STDDEV(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_792stream_STDDEV, "stream_STDDEV(ndarray real, int timeperiod=-0x80000000, double nbdev=-4e37)\n\nSTDDEV(real[, timeperiod=?, nbdev=?])\n\nStandard Deviation (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 5\n nbdev: 1.0\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_793stream_STDDEV = {"stream_STDDEV", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_793stream_STDDEV, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_792stream_STDDEV}; +static PyObject *__pyx_pw_5talib_7_ta_lib_793stream_STDDEV(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + double __pyx_v_nbdev; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_STDDEV (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5771, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5771, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5771, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5771, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_STDDEV", 0) < (0)) __PYX_ERR(5, 5771, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_STDDEV", 0, 1, 3, i); __PYX_ERR(5, 5771, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5771, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5771, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5771, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5773, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5773, __pyx_L3_error) + } else { + __pyx_v_nbdev = ((double)((double)-4e37)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_STDDEV", 0, 1, 3, __pyx_nargs); __PYX_ERR(5, 5771, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5773, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_792stream_STDDEV(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdev); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_792stream_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(5, 5793, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[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_mstate_global->__pyx_n_u_TA_STDDEV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5798, __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(5, 5799, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __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_795stream_STOCH(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_794stream_STOCH, "stream_STOCH(ndarray high, ndarray low, ndarray close, int fastk_period=-0x80000000, int slowk_period=-0x80000000, int slowk_matype=0, int slowd_period=-0x80000000, int slowd_matype=0)\n\nSTOCH(high, low, close[, fastk_period=?, slowk_period=?, slowk_matype=?, slowd_period=?, slowd_matype=?])\n\nStochastic (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n fastk_period: 5\n slowk_period: 3\n slowk_matype: 0 (Simple Moving Average)\n slowd_period: 3\n slowd_matype: 0 (Simple Moving Average)\nOutputs:\n slowk\n slowd"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_795stream_STOCH = {"stream_STOCH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_795stream_STOCH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_794stream_STOCH}; +static PyObject *__pyx_pw_5talib_7_ta_lib_795stream_STOCH(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_fastk_period; + int __pyx_v_slowk_period; + int __pyx_v_slowk_matype; + int __pyx_v_slowd_period; + int __pyx_v_slowd_matype; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[8] = {0,0,0,0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_STOCH (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_slowk_period,&__pyx_mstate_global->__pyx_n_u_slowk_matype,&__pyx_mstate_global->__pyx_n_u_slowd_period,&__pyx_mstate_global->__pyx_n_u_slowd_matype,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5801, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 8: + values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(5, 5801, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 5801, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 5801, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 5801, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5801, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5801, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5801, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5801, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_STOCH", 0) < (0)) __PYX_ERR(5, 5801, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_STOCH", 0, 3, 8, i); __PYX_ERR(5, 5801, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 8: + values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(5, 5801, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 5801, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 5801, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 5801, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5801, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5801, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5801, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5801, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5803, __pyx_L3_error) + } else { + __pyx_v_fastk_period = ((int)((int)-2147483648)); + } + if (values[4]) { + __pyx_v_slowk_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5803, __pyx_L3_error) + } else { + __pyx_v_slowk_period = ((int)((int)-2147483648)); + } + if (values[5]) { + __pyx_v_slowk_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowk_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5803, __pyx_L3_error) + } else { + __pyx_v_slowk_matype = ((int)((int)0)); + } + if (values[6]) { + __pyx_v_slowd_period = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_slowd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5803, __pyx_L3_error) + } else { + __pyx_v_slowd_period = ((int)((int)-2147483648)); + } + if (values[7]) { + __pyx_v_slowd_matype = __Pyx_PyLong_As_int(values[7]); if (unlikely((__pyx_v_slowd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5803, __pyx_L3_error) + } else { + __pyx_v_slowd_matype = ((int)((int)0)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_STOCH", 0, 3, 8, __pyx_nargs); __PYX_ERR(5, 5801, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 5803, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 5803, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 5803, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_794stream_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; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_794stream_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(5, 5830, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5832, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5834, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5836, __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_mstate_global->__pyx_n_u_TA_STOCH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5840, __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(5, 5841, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outslowd); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5841, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 5841, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 5841, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(5, 5841, __pyx_L1_error); + __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_797stream_STOCHF(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_796stream_STOCHF, "stream_STOCHF(ndarray high, ndarray low, ndarray close, int fastk_period=-0x80000000, int fastd_period=-0x80000000, int fastd_matype=0)\n\nSTOCHF(high, low, close[, fastk_period=?, fastd_period=?, fastd_matype=?])\n\nStochastic Fast (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n fastk_period: 5\n fastd_period: 3\n fastd_matype: 0 (Simple Moving Average)\nOutputs:\n fastk\n fastd"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_797stream_STOCHF = {"stream_STOCHF", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_797stream_STOCHF, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_796stream_STOCHF}; +static PyObject *__pyx_pw_5talib_7_ta_lib_797stream_STOCHF(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_fastk_period; + int __pyx_v_fastd_period; + int __pyx_v_fastd_matype; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[6] = {0,0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_STOCHF (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_fastd_period,&__pyx_mstate_global->__pyx_n_u_fastd_matype,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5843, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 5843, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 5843, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5843, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5843, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5843, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5843, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_STOCHF", 0) < (0)) __PYX_ERR(5, 5843, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_STOCHF", 0, 3, 6, i); __PYX_ERR(5, 5843, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 5843, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 5843, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5843, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5843, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5843, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5843, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5845, __pyx_L3_error) + } else { + __pyx_v_fastk_period = ((int)((int)-2147483648)); + } + if (values[4]) { + __pyx_v_fastd_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5845, __pyx_L3_error) + } else { + __pyx_v_fastd_period = ((int)((int)-2147483648)); + } + if (values[5]) { + __pyx_v_fastd_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_fastd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5845, __pyx_L3_error) + } else { + __pyx_v_fastd_matype = ((int)((int)0)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_STOCHF", 0, 3, 6, __pyx_nargs); __PYX_ERR(5, 5843, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 5845, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 5845, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 5845, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_796stream_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; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_796stream_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(5, 5870, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5872, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5874, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5876, __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_mstate_global->__pyx_n_u_TA_STOCHF, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5880, __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(5, 5881, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outfastd); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5881, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 5881, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 5881, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(5, 5881, __pyx_L1_error); + __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_799stream_STOCHRSI(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_798stream_STOCHRSI, "stream_STOCHRSI(ndarray real, int timeperiod=-0x80000000, int fastk_period=-0x80000000, int fastd_period=-0x80000000, int fastd_matype=0)\n\nSTOCHRSI(real[, timeperiod=?, fastk_period=?, fastd_period=?, fastd_matype=?])\n\nStochastic Relative Strength Index (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\n fastk_period: 5\n fastd_period: 3\n fastd_matype: 0 (Simple Moving Average)\nOutputs:\n fastk\n fastd"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_799stream_STOCHRSI = {"stream_STOCHRSI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_799stream_STOCHRSI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_798stream_STOCHRSI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_799stream_STOCHRSI(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + int __pyx_v_fastk_period; + int __pyx_v_fastd_period; + int __pyx_v_fastd_matype; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[5] = {0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_STOCHRSI (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_fastd_period,&__pyx_mstate_global->__pyx_n_u_fastd_matype,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5883, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 5883, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5883, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5883, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5883, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5883, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_STOCHRSI", 0) < (0)) __PYX_ERR(5, 5883, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_STOCHRSI", 0, 1, 5, i); __PYX_ERR(5, 5883, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 5883, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5883, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5883, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5883, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5883, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5885, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5885, __pyx_L3_error) + } else { + __pyx_v_fastk_period = ((int)((int)-2147483648)); + } + if (values[3]) { + __pyx_v_fastd_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5885, __pyx_L3_error) + } else { + __pyx_v_fastd_period = ((int)((int)-2147483648)); + } + if (values[4]) { + __pyx_v_fastd_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5885, __pyx_L3_error) + } else { + __pyx_v_fastd_matype = ((int)((int)0)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_STOCHRSI", 0, 1, 5, __pyx_nargs); __PYX_ERR(5, 5883, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5885, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_798stream_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; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_798stream_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(5, 5909, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[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_mstate_global->__pyx_n_u_TA_STOCHRSI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5915, __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(5, 5916, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outfastd); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5916, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5916, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 5916, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2) != (0)) __PYX_ERR(5, 5916, __pyx_L1_error); + __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_801stream_SUB(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_800stream_SUB, "stream_SUB(ndarray real0, ndarray real1)\n\nSUB(real0, real1)\n\nVector Arithmetic Subtraction (Math Operators)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_801stream_SUB = {"stream_SUB", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_801stream_SUB, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_800stream_SUB}; +static PyObject *__pyx_pw_5talib_7_ta_lib_801stream_SUB(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real0 = 0; + PyArrayObject *__pyx_v_real1 = 0; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_SUB (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5918, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5918, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5918, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_SUB", 0) < (0)) __PYX_ERR(5, 5918, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_SUB", 1, 2, 2, i); __PYX_ERR(5, 5918, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5918, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5918, __pyx_L3_error) + } + __pyx_v_real0 = ((PyArrayObject *)values[0]); + __pyx_v_real1 = ((PyArrayObject *)values[1]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_SUB", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 5918, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(5, 5920, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(5, 5920, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_800stream_SUB(__pyx_self, __pyx_v_real0, __pyx_v_real1); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_800stream_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(5, 5939, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real0)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5941, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real1)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5943, __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_mstate_global->__pyx_n_u_TA_SUB, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5946, __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(5, 5947, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __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_803stream_SUM(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_802stream_SUM, "stream_SUM(ndarray real, int timeperiod=-0x80000000)\n\nSUM(real[, timeperiod=?])\n\nSummation (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_803stream_SUM = {"stream_SUM", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_803stream_SUM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_802stream_SUM}; +static PyObject *__pyx_pw_5talib_7_ta_lib_803stream_SUM(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_SUM (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5949, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5949, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5949, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_SUM", 0) < (0)) __PYX_ERR(5, 5949, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_SUM", 0, 1, 2, i); __PYX_ERR(5, 5949, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5949, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5949, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5951, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_SUM", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5949, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5951, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_802stream_SUM(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_802stream_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(5, 5970, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[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_mstate_global->__pyx_n_u_TA_SUM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5975, __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(5, 5976, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __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_805stream_SUPERTREND(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_804stream_SUPERTREND, "stream_SUPERTREND(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000, double multiplier=3.0)\n\nSUPERTREND(high, low, close[, timeperiod=?, multiplier=?])\n\nSuperTrend (Overlap Studies)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n timeperiod: 10\n multiplier: 3.0\nOutputs:\n real\n integer"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_805stream_SUPERTREND = {"stream_SUPERTREND", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_805stream_SUPERTREND, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_804stream_SUPERTREND}; +static PyObject *__pyx_pw_5talib_7_ta_lib_805stream_SUPERTREND(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + double __pyx_v_multiplier; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[5] = {0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_SUPERTREND (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_multiplier,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5978, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 5978, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5978, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5978, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5978, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5978, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_SUPERTREND", 0) < (0)) __PYX_ERR(5, 5978, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_SUPERTREND", 0, 3, 5, i); __PYX_ERR(5, 5978, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 5978, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5978, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5978, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5978, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5978, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5980, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + if (values[4]) { + __pyx_v_multiplier = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_multiplier == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5980, __pyx_L3_error) + } else { + __pyx_v_multiplier = ((double)((double)3.0)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_SUPERTREND", 0, 3, 5, __pyx_nargs); __PYX_ERR(5, 5978, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_SUPERTREND", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 5980, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 5980, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 5980, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_804stream_SUPERTREND(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod, __pyx_v_multiplier); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_804stream_SUPERTREND(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod, double __pyx_v_multiplier) { + npy_intp __pyx_v_length; + 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; + int __pyx_v_outinteger; + 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_SUPERTREND", 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(5, 6004, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6006, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6008, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 6010, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + __pyx_v_outinteger = 0; + + __pyx_v_retCode = TA_SUPERTREND((((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_multiplier, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal), (&__pyx_v_outinteger)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUPERTREND, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6014, __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(5, 6015, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 6015, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6015, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 6015, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(5, 6015, __pyx_L1_error); + __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_SUPERTREND", __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_807stream_T3(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_806stream_T3, "stream_T3(ndarray real, int timeperiod=-0x80000000, double vfactor=-4e37)\n\nT3(real[, timeperiod=?, vfactor=?])\n\nTriple Exponential Moving Average (T3) (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 5\n vfactor: 0.7\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_807stream_T3 = {"stream_T3", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_807stream_T3, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_806stream_T3}; +static PyObject *__pyx_pw_5talib_7_ta_lib_807stream_T3(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + double __pyx_v_vfactor; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_T3 (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_vfactor,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6017, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6017, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6017, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6017, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_T3", 0) < (0)) __PYX_ERR(5, 6017, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_T3", 0, 1, 3, i); __PYX_ERR(5, 6017, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6017, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6017, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6017, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6019, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_vfactor = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_vfactor == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 6019, __pyx_L3_error) + } else { + __pyx_v_vfactor = ((double)((double)-4e37)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_T3", 0, 1, 3, __pyx_nargs); __PYX_ERR(5, 6017, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6019, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_806stream_T3(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_vfactor); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_806stream_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(5, 6039, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[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_mstate_global->__pyx_n_u_TA_T3, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6044, __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(5, 6045, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __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_809stream_TAN(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_808stream_TAN, "stream_TAN(ndarray real)\n\nTAN(real)\n\nVector Trigonometric Tan (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_809stream_TAN = {"stream_TAN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_809stream_TAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_808stream_TAN}; +static PyObject *__pyx_pw_5talib_7_ta_lib_809stream_TAN(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_TAN (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6047, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6047, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_TAN", 0) < (0)) __PYX_ERR(5, 6047, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_TAN", 1, 1, 1, i); __PYX_ERR(5, 6047, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6047, __pyx_L3_error) + } + __pyx_v_real = ((PyArrayObject *)values[0]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_TAN", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 6047, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_TAN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6049, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_808stream_TAN(__pyx_self, __pyx_v_real); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_808stream_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(5, 6066, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[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_mstate_global->__pyx_n_u_TA_TAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6071, __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(5, 6072, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __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_811stream_TANH(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_810stream_TANH, "stream_TANH(ndarray real)\n\nTANH(real)\n\nVector Trigonometric Tanh (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_811stream_TANH = {"stream_TANH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_811stream_TANH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_810stream_TANH}; +static PyObject *__pyx_pw_5talib_7_ta_lib_811stream_TANH(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_TANH (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6074, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6074, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_TANH", 0) < (0)) __PYX_ERR(5, 6074, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_TANH", 1, 1, 1, i); __PYX_ERR(5, 6074, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6074, __pyx_L3_error) + } + __pyx_v_real = ((PyArrayObject *)values[0]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_TANH", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 6074, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_TANH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6076, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_810stream_TANH(__pyx_self, __pyx_v_real); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_810stream_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(5, 6093, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[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_mstate_global->__pyx_n_u_TA_TANH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6098, __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(5, 6099, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __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_813stream_TEMA(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_812stream_TEMA, "stream_TEMA(ndarray real, int timeperiod=-0x80000000)\n\nTEMA(real[, timeperiod=?])\n\nTriple Exponential Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_813stream_TEMA = {"stream_TEMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_813stream_TEMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_812stream_TEMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_813stream_TEMA(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_TEMA (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6101, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6101, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6101, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_TEMA", 0) < (0)) __PYX_ERR(5, 6101, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_TEMA", 0, 1, 2, i); __PYX_ERR(5, 6101, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6101, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6101, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6103, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_TEMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 6101, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6103, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_812stream_TEMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_812stream_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(5, 6122, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[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_mstate_global->__pyx_n_u_TA_TEMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6127, __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(5, 6128, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __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_815stream_TRANGE(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_814stream_TRANGE, "stream_TRANGE(ndarray high, ndarray low, ndarray close)\n\nTRANGE(high, low, close)\n\nTrue Range (Volatility Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_815stream_TRANGE = {"stream_TRANGE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_815stream_TRANGE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_814stream_TRANGE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_815stream_TRANGE(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_TRANGE (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6130, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6130, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6130, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6130, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_TRANGE", 0) < (0)) __PYX_ERR(5, 6130, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_TRANGE", 1, 3, 3, i); __PYX_ERR(5, 6130, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6130, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6130, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6130, __pyx_L3_error) + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_TRANGE", 1, 3, 3, __pyx_nargs); __PYX_ERR(5, 6130, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 6132, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 6132, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 6132, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_814stream_TRANGE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_814stream_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(5, 6151, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6153, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6155, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 6157, __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_mstate_global->__pyx_n_u_TA_TRANGE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6160, __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(5, 6161, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __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_817stream_TRIMA(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_816stream_TRIMA, "stream_TRIMA(ndarray real, int timeperiod=-0x80000000)\n\nTRIMA(real[, timeperiod=?])\n\nTriangular Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_817stream_TRIMA = {"stream_TRIMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_817stream_TRIMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_816stream_TRIMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_817stream_TRIMA(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_TRIMA (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6163, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6163, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6163, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_TRIMA", 0) < (0)) __PYX_ERR(5, 6163, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_TRIMA", 0, 1, 2, i); __PYX_ERR(5, 6163, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6163, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6163, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6165, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_TRIMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 6163, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6165, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_816stream_TRIMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_816stream_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(5, 6184, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[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_mstate_global->__pyx_n_u_TA_TRIMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6189, __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(5, 6190, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __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_819stream_TRIX(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_818stream_TRIX, "stream_TRIX(ndarray real, int timeperiod=-0x80000000)\n\nTRIX(real[, timeperiod=?])\n\n1-day Rate-Of-Change (ROC) of a Triple Smooth EMA (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_819stream_TRIX = {"stream_TRIX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_819stream_TRIX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_818stream_TRIX}; +static PyObject *__pyx_pw_5talib_7_ta_lib_819stream_TRIX(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_TRIX (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6192, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6192, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6192, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_TRIX", 0) < (0)) __PYX_ERR(5, 6192, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_TRIX", 0, 1, 2, i); __PYX_ERR(5, 6192, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6192, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6192, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6194, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_TRIX", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 6192, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6194, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_818stream_TRIX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_818stream_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(5, 6213, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[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_mstate_global->__pyx_n_u_TA_TRIX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6218, __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(5, 6219, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __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_821stream_TSF(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_820stream_TSF, "stream_TSF(ndarray real, int timeperiod=-0x80000000)\n\nTSF(real[, timeperiod=?])\n\nTime Series Forecast (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_821stream_TSF = {"stream_TSF", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_821stream_TSF, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_820stream_TSF}; +static PyObject *__pyx_pw_5talib_7_ta_lib_821stream_TSF(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_TSF (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6221, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6221, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6221, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_TSF", 0) < (0)) __PYX_ERR(5, 6221, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_TSF", 0, 1, 2, i); __PYX_ERR(5, 6221, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6221, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6221, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6223, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_TSF", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 6221, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6223, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_820stream_TSF(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_820stream_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(5, 6242, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[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_mstate_global->__pyx_n_u_TA_TSF, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6247, __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(5, 6248, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __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_823stream_TSI(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_822stream_TSI, "stream_TSI(ndarray real, int firstperiod=-0x80000000, int secondperiod=-0x80000000)\n\nTSI(real[, firstperiod=?, secondperiod=?])\n\nTrue Strength Index (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n firstperiod: 25\n secondperiod: 13\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_823stream_TSI = {"stream_TSI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_823stream_TSI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_822stream_TSI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_823stream_TSI(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_firstperiod; + int __pyx_v_secondperiod; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_TSI (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_firstperiod,&__pyx_mstate_global->__pyx_n_u_secondperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6250, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6250, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6250, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6250, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_TSI", 0) < (0)) __PYX_ERR(5, 6250, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_TSI", 0, 1, 3, i); __PYX_ERR(5, 6250, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6250, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6250, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6250, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_firstperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_firstperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6252, __pyx_L3_error) + } else { + __pyx_v_firstperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_secondperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_secondperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6252, __pyx_L3_error) + } else { + __pyx_v_secondperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_TSI", 0, 1, 3, __pyx_nargs); __PYX_ERR(5, 6250, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_TSI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6252, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_822stream_TSI(__pyx_self, __pyx_v_real, __pyx_v_firstperiod, __pyx_v_secondperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_822stream_TSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_firstperiod, int __pyx_v_secondperiod) { + 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_TSI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6272, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + __pyx_v_retCode = TA_TSI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_firstperiod, __pyx_v_secondperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6277, __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(5, 6278, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_TSI", __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_825stream_TYPPRICE(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_824stream_TYPPRICE, "stream_TYPPRICE(ndarray high, ndarray low, ndarray close)\n\nTYPPRICE(high, low, close)\n\nTypical Price (Price Transform)\n\nInputs:\n prices: ['high', 'low', 'close']\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_825stream_TYPPRICE = {"stream_TYPPRICE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_825stream_TYPPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_824stream_TYPPRICE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_825stream_TYPPRICE(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_TYPPRICE (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6280, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6280, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6280, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6280, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_TYPPRICE", 0) < (0)) __PYX_ERR(5, 6280, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_TYPPRICE", 1, 3, 3, i); __PYX_ERR(5, 6280, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6280, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6280, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6280, __pyx_L3_error) + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_TYPPRICE", 1, 3, 3, __pyx_nargs); __PYX_ERR(5, 6280, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 6282, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 6282, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 6282, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_824stream_TYPPRICE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_824stream_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(5, 6301, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6303, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6305, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 6307, __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_mstate_global->__pyx_n_u_TA_TYPPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6310, __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(5, 6311, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __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_827stream_ULTOSC(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_826stream_ULTOSC, "stream_ULTOSC(ndarray high, ndarray low, ndarray close, int timeperiod1=-0x80000000, int timeperiod2=-0x80000000, int timeperiod3=-0x80000000)\n\nULTOSC(high, low, close[, timeperiod1=?, timeperiod2=?, timeperiod3=?])\n\nUltimate Oscillator (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n timeperiod1: 7\n timeperiod2: 14\n timeperiod3: 28\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_827stream_ULTOSC = {"stream_ULTOSC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_827stream_ULTOSC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_826stream_ULTOSC}; +static PyObject *__pyx_pw_5talib_7_ta_lib_827stream_ULTOSC(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod1; + int __pyx_v_timeperiod2; + int __pyx_v_timeperiod3; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[6] = {0,0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_ULTOSC (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod1,&__pyx_mstate_global->__pyx_n_u_timeperiod2,&__pyx_mstate_global->__pyx_n_u_timeperiod3,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6313, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 6313, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 6313, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 6313, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6313, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6313, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6313, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_ULTOSC", 0) < (0)) __PYX_ERR(5, 6313, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_ULTOSC", 0, 3, 6, i); __PYX_ERR(5, 6313, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 6313, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 6313, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 6313, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6313, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6313, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6313, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_timeperiod1 = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6315, __pyx_L3_error) + } else { + __pyx_v_timeperiod1 = ((int)((int)-2147483648)); + } + if (values[4]) { + __pyx_v_timeperiod2 = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6315, __pyx_L3_error) + } else { + __pyx_v_timeperiod2 = ((int)((int)-2147483648)); + } + if (values[5]) { + __pyx_v_timeperiod3 = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_timeperiod3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6315, __pyx_L3_error) + } else { + __pyx_v_timeperiod3 = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_ULTOSC", 0, 3, 6, __pyx_nargs); __PYX_ERR(5, 6313, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 6315, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 6315, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 6315, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_826stream_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; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_826stream_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(5, 6338, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6340, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6342, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 6344, __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_mstate_global->__pyx_n_u_TA_ULTOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6347, __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(5, 6348, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __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_829stream_VAR(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_828stream_VAR, "stream_VAR(ndarray real, int timeperiod=-0x80000000, double nbdev=-4e37)\n\nVAR(real[, timeperiod=?, nbdev=?])\n\nVariance (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 5\n nbdev: 1.0\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_829stream_VAR = {"stream_VAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_829stream_VAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_828stream_VAR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_829stream_VAR(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + double __pyx_v_nbdev; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_VAR (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6350, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6350, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6350, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6350, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_VAR", 0) < (0)) __PYX_ERR(5, 6350, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_VAR", 0, 1, 3, i); __PYX_ERR(5, 6350, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6350, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6350, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6350, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6352, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 6352, __pyx_L3_error) + } else { + __pyx_v_nbdev = ((double)((double)-4e37)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_VAR", 0, 1, 3, __pyx_nargs); __PYX_ERR(5, 6350, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6352, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_828stream_VAR(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdev); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_828stream_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(5, 6372, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[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_mstate_global->__pyx_n_u_TA_VAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6377, __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(5, 6378, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __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_831stream_VHF(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_830stream_VHF, "stream_VHF(ndarray real, int timeperiod=-0x80000000)\n\nVHF(real[, timeperiod=?])\n\nVertical Horizontal Filter (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 28\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_831stream_VHF = {"stream_VHF", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_831stream_VHF, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_830stream_VHF}; +static PyObject *__pyx_pw_5talib_7_ta_lib_831stream_VHF(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_VHF (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6380, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6380, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6380, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_VHF", 0) < (0)) __PYX_ERR(5, 6380, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_VHF", 0, 1, 2, i); __PYX_ERR(5, 6380, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6380, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6380, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6382, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_VHF", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 6380, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_VHF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6382, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_830stream_VHF(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_830stream_VHF(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_VHF", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6401, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + __pyx_v_retCode = TA_VHF((((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_mstate_global->__pyx_n_u_TA_VHF, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6406, __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(5, 6407, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_VHF", __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_833stream_VORTEX(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_832stream_VORTEX, "stream_VORTEX(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nVORTEX(high, low, close[, timeperiod=?])\n\nVortex Indicator (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n timeperiod: 14\nOutputs:\n plusvi\n minusvi"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_833stream_VORTEX = {"stream_VORTEX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_833stream_VORTEX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_832stream_VORTEX}; +static PyObject *__pyx_pw_5talib_7_ta_lib_833stream_VORTEX(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_VORTEX (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6409, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 6409, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6409, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6409, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6409, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_VORTEX", 0) < (0)) __PYX_ERR(5, 6409, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_VORTEX", 0, 3, 4, i); __PYX_ERR(5, 6409, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 6409, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6409, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6409, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6409, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6411, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_VORTEX", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 6409, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_VORTEX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 6411, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 6411, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 6411, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_832stream_VORTEX(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_832stream_VORTEX(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_outplusvi; + double __pyx_v_outminusvi; + 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_VORTEX", 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(5, 6434, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6436, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6438, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 6440, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_v_outplusvi = __pyx_v_5talib_7_ta_lib_NaN; + + __pyx_v_outminusvi = __pyx_v_5talib_7_ta_lib_NaN; + + __pyx_v_retCode = TA_VORTEX((((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_outplusvi), (&__pyx_v_outminusvi)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VORTEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6444, __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_outplusvi); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6445, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outminusvi); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 6445, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6445, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 6445, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(5, 6445, __pyx_L1_error); + __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_VORTEX", __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_835stream_VWAP(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_834stream_VWAP, "stream_VWAP(ndarray high, ndarray low, ndarray close, ndarray volume)\n\nVWAP(high, low, close, volume)\n\nVolume Weighted Average Price (Volume Indicators)\n\nInputs:\n prices: ['high', 'low', 'close', 'volume']\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_835stream_VWAP = {"stream_VWAP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_835stream_VWAP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_834stream_VWAP}; +static PyObject *__pyx_pw_5talib_7_ta_lib_835stream_VWAP(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + PyArrayObject *__pyx_v_volume = 0; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_VWAP (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6447, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 6447, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6447, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6447, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6447, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_VWAP", 0) < (0)) __PYX_ERR(5, 6447, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_VWAP", 1, 4, 4, i); __PYX_ERR(5, 6447, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6447, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6447, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6447, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 6447, __pyx_L3_error) + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + __pyx_v_volume = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_VWAP", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 6447, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_VWAP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 6449, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 6449, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 6449, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 6449, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_834stream_VWAP(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_834stream_VWAP(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_VWAP", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_INCREF((PyObject *)__pyx_v_volume); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6469, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6471, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6473, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6475, __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_f_5numpy_7ndarray_4data_data(__pyx_v_volume)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 6477, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + __pyx_v_retCode = TA_VWAP((((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_mstate_global->__pyx_n_u_TA_VWAP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6480, __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(5, 6481, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_VWAP", __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_837stream_VWMA(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_836stream_VWMA, "stream_VWMA(ndarray real, ndarray volume, int timeperiod=-0x80000000)\n\nVWMA(real, volume[, timeperiod=?])\n\nVolume Weighted Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\n prices: ['volume']\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_837stream_VWMA = {"stream_VWMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_837stream_VWMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_836stream_VWMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_837stream_VWMA(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_volume = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_VWMA (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6483, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6483, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6483, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6483, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_VWMA", 0) < (0)) __PYX_ERR(5, 6483, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_VWMA", 0, 2, 3, i); __PYX_ERR(5, 6483, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6483, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6483, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6483, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_volume = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6485, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_VWMA", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 6483, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_VWMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6485, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 6485, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_836stream_VWMA(__pyx_self, __pyx_v_real, __pyx_v_volume, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_836stream_VWMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod) { + 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_VWMA", 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(5, 6506, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6508, __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_f_5numpy_7ndarray_4data_data(__pyx_v_volume)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 6510, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + __pyx_v_retCode = TA_VWMA((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_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_mstate_global->__pyx_n_u_TA_VWMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6513, __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(5, 6514, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_VWMA", __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_839stream_WAD(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_838stream_WAD, "stream_WAD(ndarray high, ndarray low, ndarray close)\n\nWAD(high, low, close)\n\nWilliams' Accumulation/Distribution (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_839stream_WAD = {"stream_WAD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_839stream_WAD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_838stream_WAD}; +static PyObject *__pyx_pw_5talib_7_ta_lib_839stream_WAD(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_WAD (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6516, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6516, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6516, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6516, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_WAD", 0) < (0)) __PYX_ERR(5, 6516, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_WAD", 1, 3, 3, i); __PYX_ERR(5, 6516, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6516, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6516, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6516, __pyx_L3_error) + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_WAD", 1, 3, 3, __pyx_nargs); __PYX_ERR(5, 6516, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_WAD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 6518, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 6518, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 6518, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_838stream_WAD(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_838stream_WAD(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_WAD", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6537, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6539, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6541, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 6543, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + __pyx_v_retCode = TA_WAD((((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_mstate_global->__pyx_n_u_TA_WAD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6546, __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(5, 6547, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_WAD", __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_841stream_WCLPRICE(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_840stream_WCLPRICE, "stream_WCLPRICE(ndarray high, ndarray low, ndarray close)\n\nWCLPRICE(high, low, close)\n\nWeighted Close Price (Price Transform)\n\nInputs:\n prices: ['high', 'low', 'close']\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_841stream_WCLPRICE = {"stream_WCLPRICE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_841stream_WCLPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_840stream_WCLPRICE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_841stream_WCLPRICE(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_WCLPRICE (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6549, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6549, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6549, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6549, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_WCLPRICE", 0) < (0)) __PYX_ERR(5, 6549, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_WCLPRICE", 1, 3, 3, i); __PYX_ERR(5, 6549, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6549, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6549, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6549, __pyx_L3_error) + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_WCLPRICE", 1, 3, 3, __pyx_nargs); __PYX_ERR(5, 6549, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 6551, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 6551, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 6551, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_840stream_WCLPRICE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_840stream_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(5, 6570, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6572, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6574, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 6576, __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_mstate_global->__pyx_n_u_TA_WCLPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6579, __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(5, 6580, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __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_843stream_WILLR(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_842stream_WILLR, "stream_WILLR(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nWILLR(high, low, close[, timeperiod=?])\n\nWilliams' %R (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_843stream_WILLR = {"stream_WILLR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_843stream_WILLR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_842stream_WILLR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_843stream_WILLR(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_WILLR (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6582, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 6582, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6582, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6582, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6582, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_WILLR", 0) < (0)) __PYX_ERR(5, 6582, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_WILLR", 0, 3, 4, i); __PYX_ERR(5, 6582, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 6582, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6582, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6582, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6582, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6584, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_WILLR", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 6582, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 6584, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 6584, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 6584, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_842stream_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; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_842stream_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(5, 6605, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6607, __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_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6609, __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_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 6611, __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_mstate_global->__pyx_n_u_TA_WILLR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6614, __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(5, 6615, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __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_845stream_WMA(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_844stream_WMA, "stream_WMA(ndarray real, int timeperiod=-0x80000000)\n\nWMA(real[, timeperiod=?])\n\nWeighted Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_845stream_WMA = {"stream_WMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_845stream_WMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_844stream_WMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_845stream_WMA(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_WMA (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6617, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6617, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6617, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_WMA", 0) < (0)) __PYX_ERR(5, 6617, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_WMA", 0, 1, 2, i); __PYX_ERR(5, 6617, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6617, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6617, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6619, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_WMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 6617, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6619, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_844stream_WMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_844stream_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(5, 6638, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[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_mstate_global->__pyx_n_u_TA_WMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6643, __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(5, 6644, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __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; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_847stream_ZLEMA(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_846stream_ZLEMA, "stream_ZLEMA(ndarray real, int timeperiod=-0x80000000)\n\nZLEMA(real[, timeperiod=?])\n\nZero-Lag Exponential Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_847stream_ZLEMA = {"stream_ZLEMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_847stream_ZLEMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_846stream_ZLEMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_847stream_ZLEMA(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_ZLEMA (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6646, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6646, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6646, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_ZLEMA", 0) < (0)) __PYX_ERR(5, 6646, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_ZLEMA", 0, 1, 2, i); __PYX_ERR(5, 6646, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6646, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6646, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6648, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_ZLEMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 6646, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.stream_ZLEMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6648, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_846stream_ZLEMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_846stream_ZLEMA(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_ZLEMA", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6667, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + __pyx_v_retCode = TA_ZLEMA((((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_mstate_global->__pyx_n_u_TA_ZLEMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6672, __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(5, 6673, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_ZLEMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +/* #### Code section: module_exttypes ### */ + +static PyMethodDef __pyx_methods[] = { + {0, 0, 0, 0} +}; +/* #### Code section: initfunc_declarations ### */ +static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_InitConstants(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_global_init_code(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_variable_export_code(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_function_export_code(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_type_init_code(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_type_import_code(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_variable_import_code(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_function_import_code(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_CreateCodeObjects(__pyx_mstatetype *__pyx_mstate); /*proto*/ +/* #### Code section: init_module ### */ + +static int __Pyx_modinit_global_init_code(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_global_init_code", 0); + /*--- Global init code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + +static int __Pyx_modinit_variable_export_code(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_variable_export_code", 0); + /*--- Variable export code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + +static int __Pyx_modinit_function_export_code(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_function_export_code", 0); + /*--- Function export code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + +static int __Pyx_modinit_type_init_code(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0); + /*--- Type init code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + +static int __Pyx_modinit_type_import_code(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + CYTHON_UNUSED_VAR(__pyx_mstate); + 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_mstate->__pyx_ptype_7cpython_4type_type = __Pyx_ImportType_3_2_8(__pyx_t_1, __Pyx_BUILTIN_MODULE_NAME, "type", + #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 + sizeof(PyTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyTypeObject), + #elif CYTHON_COMPILING_IN_LIMITED_API + 0, 0, + #else + sizeof(PyHeapTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyHeapTypeObject), + #endif + __Pyx_ImportType_CheckSize_Warn_3_2_8); if (!__pyx_mstate->__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(3, 229, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5numpy_dtype = __Pyx_ImportType_3_2_8(__pyx_t_1, "numpy", "dtype", + #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 + sizeof(PyArray_Descr), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyArray_Descr), + #elif CYTHON_COMPILING_IN_LIMITED_API + sizeof(PyArray_Descr), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyArray_Descr), + #else + sizeof(PyArray_Descr), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyArray_Descr), + #endif + __Pyx_ImportType_CheckSize_Ignore_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_dtype) __PYX_ERR(3, 229, __pyx_L1_error) + __pyx_mstate->__pyx_ptype_5numpy_flatiter = __Pyx_ImportType_3_2_8(__pyx_t_1, "numpy", "flatiter", + #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 + sizeof(PyArrayIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyArrayIterObject), + #elif CYTHON_COMPILING_IN_LIMITED_API + sizeof(PyArrayIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyArrayIterObject), + #else + sizeof(PyArrayIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyArrayIterObject), + #endif + __Pyx_ImportType_CheckSize_Ignore_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_flatiter) __PYX_ERR(3, 286, __pyx_L1_error) + __pyx_mstate->__pyx_ptype_5numpy_broadcast = __Pyx_ImportType_3_2_8(__pyx_t_1, "numpy", "broadcast", + #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 + sizeof(PyArrayMultiIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyArrayMultiIterObject), + #elif CYTHON_COMPILING_IN_LIMITED_API + sizeof(PyArrayMultiIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyArrayMultiIterObject), + #else + sizeof(PyArrayMultiIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyArrayMultiIterObject), + #endif + __Pyx_ImportType_CheckSize_Ignore_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_broadcast) __PYX_ERR(3, 290, __pyx_L1_error) + __pyx_mstate->__pyx_ptype_5numpy_ndarray = __Pyx_ImportType_3_2_8(__pyx_t_1, "numpy", "ndarray", + #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 + sizeof(PyArrayObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyArrayObject), + #elif CYTHON_COMPILING_IN_LIMITED_API + sizeof(PyArrayObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyArrayObject), + #else + sizeof(PyArrayObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyArrayObject), + #endif + __Pyx_ImportType_CheckSize_Ignore_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_ndarray) __PYX_ERR(3, 329, __pyx_L1_error) + __pyx_mstate->__pyx_ptype_5numpy_generic = __Pyx_ImportType_3_2_8(__pyx_t_1, "numpy", "generic", + #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 + sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), + #elif CYTHON_COMPILING_IN_LIMITED_API + sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), + #else + sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), + #endif + __Pyx_ImportType_CheckSize_Warn_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_generic) __PYX_ERR(3, 847, __pyx_L1_error) + __pyx_mstate->__pyx_ptype_5numpy_number = __Pyx_ImportType_3_2_8(__pyx_t_1, "numpy", "number", + #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 + sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), + #elif CYTHON_COMPILING_IN_LIMITED_API + sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), + #else + sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), + #endif + __Pyx_ImportType_CheckSize_Warn_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_number) __PYX_ERR(3, 849, __pyx_L1_error) + __pyx_mstate->__pyx_ptype_5numpy_integer = __Pyx_ImportType_3_2_8(__pyx_t_1, "numpy", "integer", + #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 + sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), + #elif CYTHON_COMPILING_IN_LIMITED_API + sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), + #else + sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), + #endif + __Pyx_ImportType_CheckSize_Warn_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_integer) __PYX_ERR(3, 851, __pyx_L1_error) + __pyx_mstate->__pyx_ptype_5numpy_signedinteger = __Pyx_ImportType_3_2_8(__pyx_t_1, "numpy", "signedinteger", + #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 + sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), + #elif CYTHON_COMPILING_IN_LIMITED_API + sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), + #else + sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), + #endif + __Pyx_ImportType_CheckSize_Warn_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_signedinteger) __PYX_ERR(3, 853, __pyx_L1_error) + __pyx_mstate->__pyx_ptype_5numpy_unsignedinteger = __Pyx_ImportType_3_2_8(__pyx_t_1, "numpy", "unsignedinteger", + #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 + sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), + #elif CYTHON_COMPILING_IN_LIMITED_API + sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), + #else + sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), + #endif + __Pyx_ImportType_CheckSize_Warn_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_unsignedinteger) __PYX_ERR(3, 855, __pyx_L1_error) + __pyx_mstate->__pyx_ptype_5numpy_inexact = __Pyx_ImportType_3_2_8(__pyx_t_1, "numpy", "inexact", + #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 + sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), + #elif CYTHON_COMPILING_IN_LIMITED_API + sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), + #else + sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), + #endif + __Pyx_ImportType_CheckSize_Warn_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_inexact) __PYX_ERR(3, 857, __pyx_L1_error) + __pyx_mstate->__pyx_ptype_5numpy_floating = __Pyx_ImportType_3_2_8(__pyx_t_1, "numpy", "floating", + #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 + sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), + #elif CYTHON_COMPILING_IN_LIMITED_API + sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), + #else + sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), + #endif + __Pyx_ImportType_CheckSize_Warn_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_floating) __PYX_ERR(3, 859, __pyx_L1_error) + __pyx_mstate->__pyx_ptype_5numpy_complexfloating = __Pyx_ImportType_3_2_8(__pyx_t_1, "numpy", "complexfloating", + #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 + sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), + #elif CYTHON_COMPILING_IN_LIMITED_API + sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), + #else + sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), + #endif + __Pyx_ImportType_CheckSize_Warn_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_complexfloating) __PYX_ERR(3, 861, __pyx_L1_error) + __pyx_mstate->__pyx_ptype_5numpy_flexible = __Pyx_ImportType_3_2_8(__pyx_t_1, "numpy", "flexible", + #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 + sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), + #elif CYTHON_COMPILING_IN_LIMITED_API + sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), + #else + sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), + #endif + __Pyx_ImportType_CheckSize_Warn_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_flexible) __PYX_ERR(3, 863, __pyx_L1_error) + __pyx_mstate->__pyx_ptype_5numpy_character = __Pyx_ImportType_3_2_8(__pyx_t_1, "numpy", "character", + #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 + sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), + #elif CYTHON_COMPILING_IN_LIMITED_API + sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), + #else + sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), + #endif + __Pyx_ImportType_CheckSize_Warn_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_character) __PYX_ERR(3, 865, __pyx_L1_error) + __pyx_mstate->__pyx_ptype_5numpy_ufunc = __Pyx_ImportType_3_2_8(__pyx_t_1, "numpy", "ufunc", + #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 + sizeof(PyUFuncObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyUFuncObject), + #elif CYTHON_COMPILING_IN_LIMITED_API + sizeof(PyUFuncObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyUFuncObject), + #else + sizeof(PyUFuncObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyUFuncObject), + #endif + __Pyx_ImportType_CheckSize_Ignore_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_ufunc) __PYX_ERR(3, 946, __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(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_variable_import_code", 0); + /*--- Variable import code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + +static int __Pyx_modinit_function_import_code(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0); + /*--- Function import code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + +#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}, + #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING + {Py_mod_gil, __Pyx_FREETHREADING_COMPATIBLE}, + #endif + #if PY_VERSION_HEX >= 0x030C0000 && CYTHON_USE_MODULE_STATE + {Py_mod_multiple_interpreters, Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED}, + #endif + {0, NULL} +}; +#endif + +#ifdef __cplusplus +namespace { + struct PyModuleDef __pyx_moduledef = + #else + static struct PyModuleDef __pyx_moduledef = + #endif + { + PyModuleDef_HEAD_INIT, + "_ta_lib", + 0, /* m_doc */ + #if CYTHON_USE_MODULE_STATE + sizeof(__pyx_mstatetype), /* m_size */ + #else + (CYTHON_PEP489_MULTI_PHASE_INIT) ? 0 : -1, /* m_size */ + #endif + __pyx_methods /* m_methods */, + #if CYTHON_PEP489_MULTI_PHASE_INIT + __pyx_moduledef_slots, /* m_slots */ + #else + NULL, /* m_reload */ + #endif + #if CYTHON_USE_MODULE_STATE + __pyx_m_traverse, /* m_traverse */ + __pyx_m_clear, /* m_clear */ + NULL /* m_free */ + #else + NULL, /* m_traverse */ + NULL, /* m_clear */ + NULL /* m_free */ + #endif + }; + #ifdef __cplusplus +} /* anonymous namespace */ +#endif + +/* PyModInitFuncType */ +#ifndef CYTHON_NO_PYINIT_EXPORT + #define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC +#else + #ifdef __cplusplus + #define __Pyx_PyMODINIT_FUNC extern "C" PyObject * + #else + #define __Pyx_PyMODINIT_FUNC PyObject * + #endif +#endif + +__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); +} +/* ModuleCreationPEP489 */ +#if CYTHON_COMPILING_IN_LIMITED_API && (__PYX_LIMITED_VERSION_HEX < 0x03090000\ + || ((defined(_WIN32) || defined(WIN32) || defined(MS_WINDOWS)) && __PYX_LIMITED_VERSION_HEX < 0x030A0000)) +static PY_INT64_T __Pyx_GetCurrentInterpreterId(void) { + { + PyObject *module = PyImport_ImportModule("_interpreters"); // 3.13+ I think + if (!module) { + PyErr_Clear(); // just try the 3.8-3.12 version + module = PyImport_ImportModule("_xxsubinterpreters"); + if (!module) goto bad; + } + PyObject *current = PyObject_CallMethod(module, "get_current", NULL); + Py_DECREF(module); + if (!current) goto bad; + if (PyTuple_Check(current)) { + PyObject *new_current = PySequence_GetItem(current, 0); + Py_DECREF(current); + current = new_current; + if (!new_current) goto bad; + } + long long as_c_int = PyLong_AsLongLong(current); + Py_DECREF(current); + return as_c_int; + } + bad: + PySys_WriteStderr("__Pyx_GetCurrentInterpreterId failed. Try setting the C define CYTHON_PEP489_MULTI_PHASE_INIT=0\n"); + return -1; +} +#endif +#if !CYTHON_USE_MODULE_STATE +static CYTHON_SMALL_CODE int __Pyx_check_single_interpreter(void) { + static PY_INT64_T main_interpreter_id = -1; +#if CYTHON_COMPILING_IN_GRAAL && defined(GRAALPY_VERSION_NUM) && GRAALPY_VERSION_NUM > 0x19000000 + PY_INT64_T current_id = GraalPyInterpreterState_GetIDFromThreadState(PyThreadState_Get()); +#elif CYTHON_COMPILING_IN_GRAAL + PY_INT64_T current_id = PyInterpreterState_GetIDFromThreadState(PyThreadState_Get()); +#elif CYTHON_COMPILING_IN_LIMITED_API && (__PYX_LIMITED_VERSION_HEX < 0x03090000\ + || ((defined(_WIN32) || defined(WIN32) || defined(MS_WINDOWS)) && __PYX_LIMITED_VERSION_HEX < 0x030A0000)) + PY_INT64_T current_id = __Pyx_GetCurrentInterpreterId(); +#elif CYTHON_COMPILING_IN_LIMITED_API + PY_INT64_T current_id = PyInterpreterState_GetID(PyInterpreterState_Get()); +#else + PY_INT64_T current_id = PyInterpreterState_GetID(PyThreadState_Get()->interp); +#endif + if (unlikely(current_id == -1)) { + return -1; + } + if (main_interpreter_id == -1) { + main_interpreter_id = current_id; + return 0; + } else if (unlikely(main_interpreter_id != current_id)) { + PyErr_SetString( + PyExc_ImportError, + "Interpreter change detected - this module can only be loaded into one interpreter per process."); + return -1; + } + return 0; +} +#endif +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, PyModuleDef *def) { + PyObject *module = NULL, *moddict, *modname; + CYTHON_UNUSED_VAR(def); + #if !CYTHON_USE_MODULE_STATE + if (__Pyx_check_single_interpreter()) + return NULL; + #endif + 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 +{ + int stringtab_initialized = 0; + #if CYTHON_USE_MODULE_STATE + int pystate_addmodule_run = 0; + #endif + __pyx_mstatetype *__pyx_mstate = NULL; + 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; + size_t __pyx_t_7; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; + PyObject *__pyx_t_15 = NULL; + PyObject *__pyx_t_16 = NULL; + PyObject *__pyx_t_17 = NULL; + PyObject *__pyx_t_18 = NULL; + PyObject *__pyx_t_19 = NULL; + PyObject *__pyx_t_20 = NULL; + PyObject *__pyx_t_21 = NULL; + PyObject *(*__pyx_t_22)(PyObject *); + Py_ssize_t __pyx_t_23; + double __pyx_t_24; + int __pyx_t_25; + PyObject *__pyx_t_26 = NULL; + PyObject *__pyx_t_27 = NULL; + PyObject *__pyx_t_28 = NULL; + int __pyx_t_29; + PyObject *__pyx_t_30 = NULL; + PyObject *__pyx_t_31 = NULL; + int __pyx_t_32; + int __pyx_t_33; + int __pyx_t_34; + PyObject *(*__pyx_t_35)(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; + } + #else + if (__pyx_m) return __Pyx_NewRef(__pyx_m); + #endif + /*--- Module creation code ---*/ + #if CYTHON_PEP489_MULTI_PHASE_INIT + __pyx_t_1 = __pyx_pyinit_module; + Py_INCREF(__pyx_t_1); + #else + __pyx_t_1 = PyModule_Create(&__pyx_moduledef); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error) + #endif + #if CYTHON_USE_MODULE_STATE + { + int add_module_result = __Pyx_State_AddModule(__pyx_t_1, &__pyx_moduledef); + __pyx_t_1 = 0; /* transfer ownership from __pyx_t_1 to "_ta_lib" pseudovariable */ + if (unlikely((add_module_result < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + pystate_addmodule_run = 1; + } + #else + __pyx_m = __pyx_t_1; + #endif + #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING + PyUnstable_Module_SetGIL(__pyx_m, Py_MOD_GIL_USED); + #endif + __pyx_mstate = __pyx_mstate_global; + CYTHON_UNUSED_VAR(__pyx_t_1); + __pyx_mstate->__pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_mstate->__pyx_d)) __PYX_ERR(0, 1, __pyx_L1_error) + Py_INCREF(__pyx_mstate->__pyx_d); + __pyx_mstate->__pyx_b = __Pyx_PyImport_AddModuleRef(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_mstate->__pyx_b)) __PYX_ERR(0, 1, __pyx_L1_error) + __pyx_mstate->__pyx_cython_runtime = __Pyx_PyImport_AddModuleRef("cython_runtime"); if (unlikely(!__pyx_mstate->__pyx_cython_runtime)) __PYX_ERR(0, 1, __pyx_L1_error) + if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_mstate->__pyx_b) < 0) __PYX_ERR(0, 1, __pyx_L1_error) + /* ImportRefnannyAPI */ + #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("PyInit__ta_lib", 0); + __Pyx_init_runtime_version(); + if (__Pyx_check_binary_version(__PYX_LIMITED_VERSION_HEX, __Pyx_get_runtime_version(), CYTHON_COMPILING_IN_LIMITED_API) < (0)) __PYX_ERR(0, 1, __pyx_L1_error) + __pyx_mstate->__pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_mstate->__pyx_empty_tuple)) __PYX_ERR(0, 1, __pyx_L1_error) + __pyx_mstate->__pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_mstate->__pyx_empty_bytes)) __PYX_ERR(0, 1, __pyx_L1_error) + __pyx_mstate->__pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_mstate->__pyx_empty_unicode)) __PYX_ERR(0, 1, __pyx_L1_error) + /*--- Library function declarations ---*/ + /*--- Initialize various global constants etc. ---*/ + if (__Pyx_InitConstants(__pyx_mstate) < (0)) __PYX_ERR(0, 1, __pyx_L1_error) + stringtab_initialized = 1; + if (__Pyx_InitGlobals() < (0)) __PYX_ERR(0, 1, __pyx_L1_error) + if (__pyx_module_is_main_talib___ta_lib) { + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_name_2, __pyx_mstate_global->__pyx_n_u_main) < (0)) __PYX_ERR(0, 1, __pyx_L1_error) + } + { + PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(0, 1, __pyx_L1_error) + if (!PyDict_GetItemString(modules, "talib._ta_lib")) { + if (unlikely((PyDict_SetItemString(modules, "talib._ta_lib", __pyx_m) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + } + } + /*--- Builtin init code ---*/ + if (__Pyx_InitCachedBuiltins(__pyx_mstate) < (0)) __PYX_ERR(0, 1, __pyx_L1_error) + /*--- Constants init code ---*/ + if (__Pyx_InitCachedConstants(__pyx_mstate) < (0)) __PYX_ERR(0, 1, __pyx_L1_error) + if (__Pyx_CreateCodeObjects(__pyx_mstate) < (0)) __PYX_ERR(0, 1, __pyx_L1_error) + /*--- Global type/function init code ---*/ + (void)__Pyx_modinit_global_init_code(__pyx_mstate); + (void)__Pyx_modinit_variable_export_code(__pyx_mstate); + (void)__Pyx_modinit_function_export_code(__pyx_mstate); + (void)__Pyx_modinit_type_init_code(__pyx_mstate); + if (unlikely((__Pyx_modinit_type_import_code(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + (void)__Pyx_modinit_variable_import_code(__pyx_mstate); + (void)__Pyx_modinit_function_import_code(__pyx_mstate); + /*--- Execution code ---*/ + + __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_warnings, 0, 0, __pyx_mstate_global->__pyx_kp_u_talib_warnings, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error) + __pyx_t_2 = __pyx_t_1; + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_warnings, __pyx_t_2) < (0)) __PYX_ERR(1, 1, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_PyBytes_FromString(TA_GetVersionString()); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_version, __pyx_t_2) < (0)) __PYX_ERR(1, 6, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_1_ta_check_success, 0, __pyx_mstate_global->__pyx_n_u_ta_check_success, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[0])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 8, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_check_success, __pyx_t_2) < (0)) __PYX_ERR(1, 8, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_3_ta_initialize, 0, __pyx_mstate_global->__pyx_n_u_ta_initialize, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[1])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 54, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_initialize, __pyx_t_2) < (0)) __PYX_ERR(1, 54, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_5_ta_shutdown, 0, __pyx_mstate_global->__pyx_n_u_ta_shutdown, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[2])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 59, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_shutdown, __pyx_t_2) < (0)) __PYX_ERR(1, 59, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_PEP560_update_bases(__pyx_mstate_global->__pyx_tuple[2]); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 64, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 64, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_Py3MetaclassPrepare(__pyx_t_3, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_MA_Type, __pyx_mstate_global->__pyx_n_u_MA_Type, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, (PyObject *) NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 64, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__pyx_t_2 != __pyx_mstate_global->__pyx_tuple[2]) { + if (unlikely((PyDict_SetItemString(__pyx_t_4, "__orig_bases__", __pyx_mstate_global->__pyx_tuple[2]) < 0))) __PYX_ERR(1, 64, __pyx_L1_error) + } + + __pyx_t_6 = NULL; + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_mstate_global->__pyx_int_14}; + __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)(&PyRange_Type), __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 66, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } + { + Py_ssize_t index = -1; + PyObject** temps[14] = {&__pyx_t_6,&__pyx_t_8,&__pyx_t_9,&__pyx_t_10,&__pyx_t_11,&__pyx_t_12,&__pyx_t_13,&__pyx_t_14,&__pyx_t_15,&__pyx_t_16,&__pyx_t_17,&__pyx_t_18,&__pyx_t_19,&__pyx_t_20}; + __pyx_t_21 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_21)) __PYX_ERR(1, 65, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_21); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_22 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_21); + for (index=0; index < 14; index++) { + PyObject* item = __pyx_t_22(__pyx_t_21); if (unlikely(!item)) goto __pyx_L2_unpacking_failed; + __Pyx_GOTREF(item); + *(temps[index]) = item; + } + if (__Pyx_IternextUnpackEndCheck(__pyx_t_22(__pyx_t_21), 14) < (0)) __PYX_ERR(1, 65, __pyx_L1_error) + __pyx_t_22 = NULL; + __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; + goto __pyx_L3_unpacking_done; + __pyx_L2_unpacking_failed:; + __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; + __pyx_t_22 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(1, 65, __pyx_L1_error) + __pyx_L3_unpacking_done:; + } + + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_SMA, __pyx_t_6) < (0)) __PYX_ERR(1, 65, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_EMA, __pyx_t_8) < (0)) __PYX_ERR(1, 65, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_WMA, __pyx_t_9) < (0)) __PYX_ERR(1, 65, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_DEMA, __pyx_t_10) < (0)) __PYX_ERR(1, 65, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_TEMA, __pyx_t_11) < (0)) __PYX_ERR(1, 65, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_TRIMA, __pyx_t_12) < (0)) __PYX_ERR(1, 65, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_KAMA, __pyx_t_13) < (0)) __PYX_ERR(1, 65, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_MAMA, __pyx_t_14) < (0)) __PYX_ERR(1, 65, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_T3, __pyx_t_15) < (0)) __PYX_ERR(1, 65, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_HMA, __pyx_t_16) < (0)) __PYX_ERR(1, 65, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_DISABLED, __pyx_t_17) < (0)) __PYX_ERR(1, 65, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_DEFAULT, __pyx_t_18) < (0)) __PYX_ERR(1, 65, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ZLEMA, __pyx_t_19) < (0)) __PYX_ERR(1, 66, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_RMA, __pyx_t_20) < (0)) __PYX_ERR(1, 66, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; + + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_7MA_Type_1__init__, 0, __pyx_mstate_global->__pyx_n_u_MA_Type___init, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[3])); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 68, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + #endif + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_5) < (0)) __PYX_ERR(1, 68, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_7MA_Type_3__getitem__, 0, __pyx_mstate_global->__pyx_n_u_MA_Type___getitem, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[4])); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 86, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + #endif + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_getitem, __pyx_t_5) < (0)) __PYX_ERR(1, 86, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MA_Type, __pyx_t_2, __pyx_t_4, NULL, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 64, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MA_Type, __pyx_t_5) < (0)) __PYX_ERR(1, 64, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 89, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (1-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 89, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MA_Type, __pyx_t_2) < (0)) __PYX_ERR(1, 89, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_PyDict_NewPresized(25); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 97, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_NONE, __pyx_mstate_global->__pyx_int_neg_1) < (0)) __PYX_ERR(1, 97, __pyx_L1_error) + + __pyx_t_4 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_ADX); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 98, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ADX, __pyx_t_4) < (0)) __PYX_ERR(1, 97, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_ATR); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 99, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ATR, __pyx_t_4) < (0)) __PYX_ERR(1, 97, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_CMO); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 100, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_CMO, __pyx_t_4) < (0)) __PYX_ERR(1, 97, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_DX); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 101, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_DX, __pyx_t_4) < (0)) __PYX_ERR(1, 97, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_EMA); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 102, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_EMA, __pyx_t_4) < (0)) __PYX_ERR(1, 97, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_HT_DCPERIOD); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 103, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_HT_DCPERIOD, __pyx_t_4) < (0)) __PYX_ERR(1, 97, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_HT_DCPHASE); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 104, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_HT_DCPHASE, __pyx_t_4) < (0)) __PYX_ERR(1, 97, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_HT_PHASOR); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 105, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_HT_PHASOR, __pyx_t_4) < (0)) __PYX_ERR(1, 97, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_HT_SINE); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 106, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_HT_SINE, __pyx_t_4) < (0)) __PYX_ERR(1, 97, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_HT_TRENDLINE); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 107, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_HT_TRENDLINE, __pyx_t_4) < (0)) __PYX_ERR(1, 97, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_HT_TRENDMODE); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 108, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_HT_TRENDMODE, __pyx_t_4) < (0)) __PYX_ERR(1, 97, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_KAMA); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 109, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_KAMA, __pyx_t_4) < (0)) __PYX_ERR(1, 97, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_MAMA); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 110, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MAMA, __pyx_t_4) < (0)) __PYX_ERR(1, 97, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_MINUS_DI); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 111, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MINUS_DI, __pyx_t_4) < (0)) __PYX_ERR(1, 97, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_MINUS_DM); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 112, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MINUS_DM, __pyx_t_4) < (0)) __PYX_ERR(1, 97, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5177, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_4 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_NATR); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 113, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_NATR, __pyx_t_4) < (0)) __PYX_ERR(1, 97, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + __pyx_t_4 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_PLUS_DI); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 114, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_PLUS_DI, __pyx_t_4) < (0)) __PYX_ERR(1, 97, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5179, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_4 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_PLUS_DM); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 115, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_PLUS_DM, __pyx_t_4) < (0)) __PYX_ERR(1, 97, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + __pyx_t_4 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_RSI); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 116, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_RSI, __pyx_t_4) < (0)) __PYX_ERR(1, 97, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5181, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_t_4 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_T3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 117, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_T3, __pyx_t_4) < (0)) __PYX_ERR(1, 97, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_t_4 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_RMA); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 118, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_RMA, __pyx_t_4) < (0)) __PYX_ERR(1, 97, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __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_4 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_HA); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 119, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_HA, __pyx_t_4) < (0)) __PYX_ERR(1, 97, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TYPPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5184, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_4 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_RVI); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 120, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_RVI, __pyx_t_4) < (0)) __PYX_ERR(1, 97, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5185, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; + __pyx_t_4 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_ALL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 121, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ALL, __pyx_t_4) < (0)) __PYX_ERR(1, 97, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_func_unst_ids, __pyx_t_2) < (0)) __PYX_ERR(1, 94, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 130, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ADXR, __pyx_mstate_global->__pyx_kp_u_ADXR_has_no_unstable_period_of_i) < (0)) __PYX_ERR(1, 130, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MFI, __pyx_mstate_global->__pyx_kp_u_MFI_s_unstable_period_was_retire) < (0)) __PYX_ERR(1, 130, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_STOCHRSI, __pyx_mstate_global->__pyx_kp_u_STOCHRSI_has_no_unstable_period) < (0)) __PYX_ERR(1, 130, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_func_unst_retired, __pyx_t_2) < (0)) __PYX_ERR(1, 129, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* 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; -} + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_7_ta_func_unst_id, 0, __pyx_mstate_global->__pyx_n_u_ta_func_unst_id, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[5])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 135, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_func_unst_id, __pyx_t_2) < (0)) __PYX_ERR(1, 135, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9_ta_set_unstable_period, 0, __pyx_mstate_global->__pyx_n_u_ta_set_unstable_period, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[6])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 144, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_set_unstable_period, __pyx_t_2) < (0)) __PYX_ERR(1, 144, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_677stream_ULTOSC(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_676stream_ULTOSC, "stream_ULTOSC(ndarray high, ndarray low, ndarray close, int timeperiod1=-0x80000000, int timeperiod2=-0x80000000, int timeperiod3=-0x80000000)\n\nULTOSC(high, low, close[, timeperiod1=?, timeperiod2=?, timeperiod3=?])\n\nUltimate Oscillator (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n timeperiod1: 7\n timeperiod2: 14\n timeperiod3: 28\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_677stream_ULTOSC = {"stream_ULTOSC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_677stream_ULTOSC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_676stream_ULTOSC}; -static PyObject *__pyx_pw_5talib_7_ta_lib_677stream_ULTOSC(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_timeperiod1; - int __pyx_v_timeperiod2; - int __pyx_v_timeperiod3; - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11_ta_get_unstable_period, 0, __pyx_mstate_global->__pyx_n_u_ta_get_unstable_period, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[7])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 154, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[6] = {0,0,0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_ULTOSC (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_get_unstable_period, __pyx_t_2) < (0)) __PYX_ERR(1, 154, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13_ta_set_compatibility, 0, __pyx_mstate_global->__pyx_n_u_ta_set_compatibility, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[8])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 164, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_set_compatibility, __pyx_t_2) < (0)) __PYX_ERR(1, 164, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15_ta_get_compatibility, 0, __pyx_mstate_global->__pyx_n_u_ta_get_compatibility, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[9])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 169, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod1,&__pyx_mstate_global->__pyx_n_u_timeperiod2,&__pyx_mstate_global->__pyx_n_u_timeperiod3,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5187, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 5187, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 5187, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5187, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5187, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5187, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5187, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_ULTOSC", 0) < (0)) __PYX_ERR(5, 5187, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_ULTOSC", 0, 3, 6, i); __PYX_ERR(5, 5187, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 5187, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 5187, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5187, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5187, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5187, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5187, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod1 = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5189, __pyx_L3_error) - } else { - __pyx_v_timeperiod1 = ((int)((int)-2147483648)); - } - if (values[4]) { - __pyx_v_timeperiod2 = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5189, __pyx_L3_error) - } else { - __pyx_v_timeperiod2 = ((int)((int)-2147483648)); - } - if (values[5]) { - __pyx_v_timeperiod3 = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_timeperiod3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5189, __pyx_L3_error) - } else { - __pyx_v_timeperiod3 = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_ULTOSC", 0, 3, 6, __pyx_nargs); __PYX_ERR(5, 5187, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_get_compatibility, __pyx_t_2) < (0)) __PYX_ERR(1, 169, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_PEP560_update_bases(__pyx_mstate_global->__pyx_tuple[4]); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 174, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 174, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_4, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_CandleSettingType, __pyx_mstate_global->__pyx_n_u_CandleSettingType, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, (PyObject *) NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 174, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (__pyx_t_2 != __pyx_mstate_global->__pyx_tuple[4]) { + if (unlikely((PyDict_SetItemString(__pyx_t_3, "__orig_bases__", __pyx_mstate_global->__pyx_tuple[4]) < 0))) __PYX_ERR(1, 174, __pyx_L1_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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 5189, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 5189, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 5189, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_676stream_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; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + __pyx_t_20 = NULL; + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_20, __pyx_mstate_global->__pyx_int_12}; + __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)(&PyRange_Type), __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; + if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 177, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + { + Py_ssize_t index = -1; + PyObject** temps[12] = {&__pyx_t_20,&__pyx_t_19,&__pyx_t_18,&__pyx_t_17,&__pyx_t_16,&__pyx_t_15,&__pyx_t_14,&__pyx_t_13,&__pyx_t_12,&__pyx_t_11,&__pyx_t_10,&__pyx_t_9}; + __pyx_t_8 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 175, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_22 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_8); + for (index=0; index < 12; index++) { + PyObject* item = __pyx_t_22(__pyx_t_8); if (unlikely(!item)) goto __pyx_L4_unpacking_failed; + __Pyx_GOTREF(item); + *(temps[index]) = item; + } + if (__Pyx_IternextUnpackEndCheck(__pyx_t_22(__pyx_t_8), 12) < (0)) __PYX_ERR(1, 175, __pyx_L1_error) + __pyx_t_22 = NULL; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + goto __pyx_L5_unpacking_done; + __pyx_L4_unpacking_failed:; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_22 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(1, 175, __pyx_L1_error) + __pyx_L5_unpacking_done:; } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} -static PyObject *__pyx_pf_5talib_7_ta_lib_676stream_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(5, 5212, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_BodyLong, __pyx_t_20) < (0)) __PYX_ERR(1, 175, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_BodyVeryLong, __pyx_t_19) < (0)) __PYX_ERR(1, 175, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_BodyShort, __pyx_t_18) < (0)) __PYX_ERR(1, 175, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_BodyDoji, __pyx_t_17) < (0)) __PYX_ERR(1, 175, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_ShadowLong, __pyx_t_16) < (0)) __PYX_ERR(1, 175, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_ShadowVeryLong, __pyx_t_15) < (0)) __PYX_ERR(1, 175, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_ShadowShort, __pyx_t_14) < (0)) __PYX_ERR(1, 176, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_ShadowVeryShort, __pyx_t_13) < (0)) __PYX_ERR(1, 176, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_Near, __pyx_t_12) < (0)) __PYX_ERR(1, 176, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_Far, __pyx_t_11) < (0)) __PYX_ERR(1, 176, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_Equal, __pyx_t_10) < (0)) __PYX_ERR(1, 176, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_AllCandleSettings, __pyx_t_9) < (0)) __PYX_ERR(1, 176, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5214, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_CandleSettingType, __pyx_t_2, __pyx_t_3, NULL, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 174, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CandleSettingType, __pyx_t_5) < (0)) __PYX_ERR(1, 174, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + __pyx_t_4 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_CandleSettingType); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 179, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_7, (1-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 179, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CandleSettingType, __pyx_t_2) < (0)) __PYX_ERR(1, 179, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5216, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_2 = __Pyx_PEP560_update_bases(__pyx_mstate_global->__pyx_tuple[6]); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 181, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 181, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_Py3MetaclassPrepare(__pyx_t_3, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_RangeType, __pyx_mstate_global->__pyx_n_u_RangeType, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, (PyObject *) NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 181, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__pyx_t_2 != __pyx_mstate_global->__pyx_tuple[6]) { + if (unlikely((PyDict_SetItemString(__pyx_t_4, "__orig_bases__", __pyx_mstate_global->__pyx_tuple[6]) < 0))) __PYX_ERR(1, 181, __pyx_L1_error) + } - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + __pyx_t_9 = NULL; + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_mstate_global->__pyx_int_3}; + __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)(&PyRange_Type), __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 182, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } + { + Py_ssize_t index = -1; + __pyx_t_12 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 182, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_22 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_12); + index = 0; __pyx_t_9 = __pyx_t_22(__pyx_t_12); if (unlikely(!__pyx_t_9)) goto __pyx_L6_unpacking_failed; + __Pyx_GOTREF(__pyx_t_9); + index = 1; __pyx_t_10 = __pyx_t_22(__pyx_t_12); if (unlikely(!__pyx_t_10)) goto __pyx_L6_unpacking_failed; + __Pyx_GOTREF(__pyx_t_10); + index = 2; __pyx_t_11 = __pyx_t_22(__pyx_t_12); if (unlikely(!__pyx_t_11)) goto __pyx_L6_unpacking_failed; + __Pyx_GOTREF(__pyx_t_11); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_22(__pyx_t_12), 3) < (0)) __PYX_ERR(1, 182, __pyx_L1_error) + __pyx_t_22 = NULL; + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + goto __pyx_L7_unpacking_done; + __pyx_L6_unpacking_failed:; + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __pyx_t_22 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(1, 182, __pyx_L1_error) + __pyx_L7_unpacking_done:; + } + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_RealBody, __pyx_t_9) < (0)) __PYX_ERR(1, 182, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_HighLow, __pyx_t_10) < (0)) __PYX_ERR(1, 182, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_Shadows, __pyx_t_11) < (0)) __PYX_ERR(1, 182, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5218, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_RangeType, __pyx_t_2, __pyx_t_4, NULL, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 181, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_RangeType, __pyx_t_5) < (0)) __PYX_ERR(1, 181, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_RangeType); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 184, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (1-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 184, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_RangeType, __pyx_t_2) < (0)) __PYX_ERR(1, 184, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __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_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_17_ta_set_candle_settings, 0, __pyx_mstate_global->__pyx_n_u_ta_set_candle_settings, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[10])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 186, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_set_candle_settings, __pyx_t_2) < (0)) __PYX_ERR(1, 186, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ULTOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5221, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_19_ta_restore_candle_default_settings, 0, __pyx_mstate_global->__pyx_n_u_ta_restore_candle_default_setti, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[11])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 191, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_restore_candle_default_setti, __pyx_t_2) < (0)) __PYX_ERR(1, 191, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5222, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; + { + PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_nan}; + __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_numpy, __pyx_imported_names, 1, __pyx_mstate_global->__pyx_kp_u_talib_numpy, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2, __pyx_L1_error) + } + __pyx_t_2 = __pyx_t_1; + __Pyx_GOTREF(__pyx_t_2); + { + PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_nan}; + __pyx_t_23 = 0; { + __pyx_t_4 = __Pyx_ImportFrom(__pyx_t_2, __pyx_imported_names[__pyx_t_23]); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_imported_names[__pyx_t_23], __pyx_t_4) < (0)) __PYX_ERR(4, 2, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_nan); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 7, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_24 = __Pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_24 == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 7, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_5talib_7_ta_lib_NaN = __pyx_t_24; - /* 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; -} + __pyx_t_25 = __pyx_f_5numpy_import_array(); if (unlikely(__pyx_t_25 == ((int)-1))) __PYX_ERR(4, 15, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 144, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 144, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 144, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_679stream_VAR(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_678stream_VAR, "stream_VAR(ndarray real, int timeperiod=-0x80000000, double nbdev=-4e37)\n\nVAR(real[, timeperiod=?, nbdev=?])\n\nVariance (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 5\n nbdev: 1.0\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_679stream_VAR = {"stream_VAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_679stream_VAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_678stream_VAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_679stream_VAR(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - double __pyx_v_nbdev; - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_VAR (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif + __pyx_t_5 = PyTuple_Pack(3, __pyx_t_2, __pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 142, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_21AC, 0, __pyx_mstate_global->__pyx_n_u_AC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[12])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 142, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5224, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5224, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5224, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5224, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_VAR", 0) < (0)) __PYX_ERR(5, 5224, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_VAR", 0, 1, 3, i); __PYX_ERR(5, 5224, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5224, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5224, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5224, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5226, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - if (values[2]) { - __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5226, __pyx_L3_error) - } else { - __pyx_v_nbdev = ((double)((double)-4e37)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_VAR", 0, 1, 3, __pyx_nargs); __PYX_ERR(5, 5224, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5226, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_678stream_VAR(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdev); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AC, __pyx_t_3) < (0)) __PYX_ERR(4, 142, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 178, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); -static PyObject *__pyx_pf_5talib_7_ta_lib_678stream_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_5 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 176, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_23ACCBANDS, 0, __pyx_mstate_global->__pyx_n_u_ACCBANDS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[13])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 176, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ACCBANDS, __pyx_t_3) < (0)) __PYX_ERR(4, 176, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5246, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_25ACOS, 0, __pyx_mstate_global->__pyx_n_u_ACOS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[14])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 215, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ACOS, __pyx_t_3) < (0)) __PYX_ERR(4, 215, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_27AD, 0, __pyx_mstate_global->__pyx_n_u_AD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[15])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 244, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AD, __pyx_t_3) < (0)) __PYX_ERR(4, 244, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_29ADD, 0, __pyx_mstate_global->__pyx_n_u_ADD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[16])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 276, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ADD, __pyx_t_3) < (0)) __PYX_ERR(4, 276, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 309, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 309, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); - __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_4 = PyTuple_Pack(2, __pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 307, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_31ADOSC, 0, __pyx_mstate_global->__pyx_n_u_ADOSC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[17])); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 307, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ADOSC, __pyx_t_5) < (0)) __PYX_ERR(4, 307, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5251, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 344, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5252, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; + __pyx_t_4 = PyTuple_Pack(1, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 342, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_33ADR, 0, __pyx_mstate_global->__pyx_n_u_ADR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[18])); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 342, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ADR, __pyx_t_5) < (0)) __PYX_ERR(4, 342, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 376, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); - /* 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; -} + __pyx_t_4 = PyTuple_Pack(1, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 374, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_35ADX, 0, __pyx_mstate_global->__pyx_n_u_ADX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[19])); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 374, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ADX, __pyx_t_5) < (0)) __PYX_ERR(4, 374, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 409, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_681stream_WCLPRICE(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_680stream_WCLPRICE, "stream_WCLPRICE(ndarray high, ndarray low, ndarray close)\n\nWCLPRICE(high, low, close)\n\nWeighted Close Price (Price Transform)\n\nInputs:\n prices: ['high', 'low', 'close']\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_681stream_WCLPRICE = {"stream_WCLPRICE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_681stream_WCLPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_680stream_WCLPRICE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_681stream_WCLPRICE(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; + __pyx_t_4 = PyTuple_Pack(1, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 407, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_37ADXR, 0, __pyx_mstate_global->__pyx_n_u_ADXR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[20])); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 407, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_WCLPRICE (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ADXR, __pyx_t_5) < (0)) __PYX_ERR(4, 407, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 442, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 442, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + + __pyx_t_3 = PyTuple_Pack(2, __pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 440, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_39AO, 0, __pyx_mstate_global->__pyx_n_u_AO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[21])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 440, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AO, __pyx_t_4) < (0)) __PYX_ERR(4, 440, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 475, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 475, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = __Pyx_PyLong_From_int(((int)1)); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 475, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + + __pyx_t_2 = PyTuple_Pack(3, __pyx_t_4, __pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 473, __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_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_41APO, 0, __pyx_mstate_global->__pyx_n_u_APO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[22])); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 473, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5254, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5254, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5254, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5254, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_WCLPRICE", 0) < (0)) __PYX_ERR(5, 5254, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_WCLPRICE", 1, 3, 3, i); __PYX_ERR(5, 5254, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 3)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5254, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5254, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5254, __pyx_L3_error) - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_WCLPRICE", 1, 3, 3, __pyx_nargs); __PYX_ERR(5, 5254, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 5256, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 5256, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 5256, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_680stream_WCLPRICE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_APO, __pyx_t_5) < (0)) __PYX_ERR(4, 473, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 508, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); -static PyObject *__pyx_pf_5talib_7_ta_lib_680stream_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_2 = PyTuple_Pack(1, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 506, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_43AROON, 0, __pyx_mstate_global->__pyx_n_u_AROON, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[23])); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 506, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AROON, __pyx_t_5) < (0)) __PYX_ERR(4, 506, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5275, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 543, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + __pyx_t_2 = PyTuple_Pack(1, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 541, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_45AROONOSC, 0, __pyx_mstate_global->__pyx_n_u_AROONOSC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[24])); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 541, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AROONOSC, __pyx_t_5) < (0)) __PYX_ERR(4, 541, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5277, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_47ASIN, 0, __pyx_mstate_global->__pyx_n_u_ASIN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[25])); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 573, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ASIN, __pyx_t_5) < (0)) __PYX_ERR(4, 573, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_49ATAN, 0, __pyx_mstate_global->__pyx_n_u_ATAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[26])); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 602, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ATAN, __pyx_t_5) < (0)) __PYX_ERR(4, 602, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5279, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 633, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + __pyx_t_2 = PyTuple_Pack(1, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 631, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_51ATR, 0, __pyx_mstate_global->__pyx_n_u_ATR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[27])); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 631, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ATR, __pyx_t_5) < (0)) __PYX_ERR(4, 631, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5281, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 666, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_t_2 = PyTuple_Pack(1, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 664, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_53AVGDEV, 0, __pyx_mstate_global->__pyx_n_u_AVGDEV, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[28])); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 664, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AVGDEV, __pyx_t_5) < (0)) __PYX_ERR(4, 664, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __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_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_55AVGPRICE, 0, __pyx_mstate_global->__pyx_n_u_AVGPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[29])); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 695, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AVGPRICE, __pyx_t_5) < (0)) __PYX_ERR(4, 695, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WCLPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5284, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 729, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 729, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 729, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 729, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5285, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; + __pyx_t_11 = PyTuple_Pack(4, __pyx_t_5, __pyx_t_2, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 727, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_57BBANDS, 0, __pyx_mstate_global->__pyx_n_u_BBANDS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[30])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 727, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_11); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_BBANDS, __pyx_t_4) < (0)) __PYX_ERR(4, 727, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 769, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); - /* 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; -} + __pyx_t_11 = PyTuple_Pack(1, __pyx_t_4); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 767, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_59BETA, 0, __pyx_mstate_global->__pyx_n_u_BETA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[31])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 767, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_11); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_BETA, __pyx_t_4) < (0)) __PYX_ERR(4, 767, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_61BOP, 0, __pyx_mstate_global->__pyx_n_u_BOP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[32])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 800, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_BOP, __pyx_t_4) < (0)) __PYX_ERR(4, 800, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_683stream_WILLR(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_682stream_WILLR, "stream_WILLR(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nWILLR(high, low, close[, timeperiod=?])\n\nWilliams' %R (Momentum Indicators)\n\nInputs:\n prices: ['high', 'low', 'close']\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_683stream_WILLR = {"stream_WILLR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_683stream_WILLR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_682stream_WILLR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_683stream_WILLR(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 834, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + + __pyx_t_11 = PyTuple_Pack(1, __pyx_t_4); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 832, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_63CCI, 0, __pyx_mstate_global->__pyx_n_u_CCI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[33])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 832, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_WILLR (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_11); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CCI, __pyx_t_4) < (0)) __PYX_ERR(4, 832, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_65CDL2CROWS, 0, __pyx_mstate_global->__pyx_n_u_CDL2CROWS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[34])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 865, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL2CROWS, __pyx_t_4) < (0)) __PYX_ERR(4, 865, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_67CDL3BLACKCROWS, 0, __pyx_mstate_global->__pyx_n_u_CDL3BLACKCROWS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[35])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 897, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5287, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5287, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5287, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5287, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5287, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_WILLR", 0) < (0)) __PYX_ERR(5, 5287, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_WILLR", 0, 3, 4, i); __PYX_ERR(5, 5287, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5287, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5287, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5287, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5287, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5289, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_WILLR", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 5287, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 5289, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 5289, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 5289, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_682stream_WILLR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL3BLACKCROWS, __pyx_t_4) < (0)) __PYX_ERR(4, 897, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_69CDL3INSIDE, 0, __pyx_mstate_global->__pyx_n_u_CDL3INSIDE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[36])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 929, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL3INSIDE, __pyx_t_4) < (0)) __PYX_ERR(4, 929, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -static PyObject *__pyx_pf_5talib_7_ta_lib_682stream_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_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_71CDL3LINESTRIKE, 0, __pyx_mstate_global->__pyx_n_u_CDL3LINESTRIKE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[37])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 961, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL3LINESTRIKE, __pyx_t_4) < (0)) __PYX_ERR(4, 961, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5310, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_73CDL3OUTSIDE, 0, __pyx_mstate_global->__pyx_n_u_CDL3OUTSIDE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[38])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 993, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL3OUTSIDE, __pyx_t_4) < (0)) __PYX_ERR(4, 993, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_75CDL3STARSINSOUTH, 0, __pyx_mstate_global->__pyx_n_u_CDL3STARSINSOUTH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[39])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1025, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL3STARSINSOUTH, __pyx_t_4) < (0)) __PYX_ERR(4, 1025, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5312, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_77CDL3WHITESOLDIERS, 0, __pyx_mstate_global->__pyx_n_u_CDL3WHITESOLDIERS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[40])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1057, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL3WHITESOLDIERS, __pyx_t_4) < (0)) __PYX_ERR(4, 1057, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + __pyx_t_4 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1091, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5314, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_11 = PyTuple_Pack(1, __pyx_t_4); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 1089, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_79CDLABANDONEDBABY, 0, __pyx_mstate_global->__pyx_n_u_CDLABANDONEDBABY, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[41])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1089, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_11); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLABANDONEDBABY, __pyx_t_4) < (0)) __PYX_ERR(4, 1089, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_81CDLADVANCEBLOCK, 0, __pyx_mstate_global->__pyx_n_u_CDLADVANCEBLOCK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[42])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1123, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLADVANCEBLOCK, __pyx_t_4) < (0)) __PYX_ERR(4, 1123, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5316, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_83CDLBELTHOLD, 0, __pyx_mstate_global->__pyx_n_u_CDLBELTHOLD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[43])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1155, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLBELTHOLD, __pyx_t_4) < (0)) __PYX_ERR(4, 1155, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_85CDLBREAKAWAY, 0, __pyx_mstate_global->__pyx_n_u_CDLBREAKAWAY, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[44])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1187, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLBREAKAWAY, __pyx_t_4) < (0)) __PYX_ERR(4, 1187, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __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_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_87CDLCLOSINGMARUBOZU, 0, __pyx_mstate_global->__pyx_n_u_CDLCLOSINGMARUBOZU, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[45])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1219, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLCLOSINGMARUBOZU, __pyx_t_4) < (0)) __PYX_ERR(4, 1219, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WILLR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5319, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_89CDLCONCEALBABYSWALL, 0, __pyx_mstate_global->__pyx_n_u_CDLCONCEALBABYSWALL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[46])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1251, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLCONCEALBABYSWALL, __pyx_t_4) < (0)) __PYX_ERR(4, 1251, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5320, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_91CDLCOUNTERATTACK, 0, __pyx_mstate_global->__pyx_n_u_CDLCOUNTERATTACK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[47])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1283, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLCOUNTERATTACK, __pyx_t_4) < (0)) __PYX_ERR(4, 1283, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = PyFloat_FromDouble(((double)0.5)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1317, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); - /* 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; -} + __pyx_t_11 = PyTuple_Pack(1, __pyx_t_4); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 1315, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_93CDLDARKCLOUDCOVER, 0, __pyx_mstate_global->__pyx_n_u_CDLDARKCLOUDCOVER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[48])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1315, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_11); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLDARKCLOUDCOVER, __pyx_t_4) < (0)) __PYX_ERR(4, 1315, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_95CDLDOJI, 0, __pyx_mstate_global->__pyx_n_u_CDLDOJI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[49])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1349, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLDOJI, __pyx_t_4) < (0)) __PYX_ERR(4, 1349, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_685stream_WMA(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_684stream_WMA, "stream_WMA(ndarray real, int timeperiod=-0x80000000)\n\nWMA(real[, timeperiod=?])\n\nWeighted Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_685stream_WMA = {"stream_WMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_685stream_WMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_684stream_WMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_685stream_WMA(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_97CDLDOJISTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLDOJISTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[50])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1381, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_WMA (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLDOJISTAR, __pyx_t_4) < (0)) __PYX_ERR(4, 1381, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_99CDLDRAGONFLYDOJI, 0, __pyx_mstate_global->__pyx_n_u_CDLDRAGONFLYDOJI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[51])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1413, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLDRAGONFLYDOJI, __pyx_t_4) < (0)) __PYX_ERR(4, 1413, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_101CDLENGULFING, 0, __pyx_mstate_global->__pyx_n_u_CDLENGULFING, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[52])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1445, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5322, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5322, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5322, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_WMA", 0) < (0)) __PYX_ERR(5, 5322, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_WMA", 0, 1, 2, i); __PYX_ERR(5, 5322, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5322, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5322, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5324, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_WMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5322, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5324, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_684stream_WMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLENGULFING, __pyx_t_4) < (0)) __PYX_ERR(4, 1445, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} + __pyx_t_4 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1479, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); -static PyObject *__pyx_pf_5talib_7_ta_lib_684stream_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_11 = PyTuple_Pack(1, __pyx_t_4); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 1477, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_103CDLEVENINGDOJISTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLEVENINGDOJISTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[53])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1477, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_11); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLEVENINGDOJISTAR, __pyx_t_4) < (0)) __PYX_ERR(4, 1477, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5343, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_4 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1513, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + __pyx_t_11 = PyTuple_Pack(1, __pyx_t_4); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 1511, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_105CDLEVENINGSTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLEVENINGSTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[54])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1511, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_11); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLEVENINGSTAR, __pyx_t_4) < (0)) __PYX_ERR(4, 1511, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_107CDLGAPSIDESIDEWHITE, 0, __pyx_mstate_global->__pyx_n_u_CDLGAPSIDESIDEWHITE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[55])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1545, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLGAPSIDESIDEWHITE, __pyx_t_4) < (0)) __PYX_ERR(4, 1545, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_109CDLGRAVESTONEDOJI, 0, __pyx_mstate_global->__pyx_n_u_CDLGRAVESTONEDOJI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[56])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1577, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLGRAVESTONEDOJI, __pyx_t_4) < (0)) __PYX_ERR(4, 1577, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __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_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_111CDLHAMMER, 0, __pyx_mstate_global->__pyx_n_u_CDLHAMMER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[57])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1609, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHAMMER, __pyx_t_4) < (0)) __PYX_ERR(4, 1609, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5348, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_113CDLHANGINGMAN, 0, __pyx_mstate_global->__pyx_n_u_CDLHANGINGMAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[58])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1641, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHANGINGMAN, __pyx_t_4) < (0)) __PYX_ERR(4, 1641, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5349, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_115CDLHARAMI, 0, __pyx_mstate_global->__pyx_n_u_CDLHARAMI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[59])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1673, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHARAMI, __pyx_t_4) < (0)) __PYX_ERR(4, 1673, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_117CDLHARAMICROSS, 0, __pyx_mstate_global->__pyx_n_u_CDLHARAMICROSS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[60])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1705, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHARAMICROSS, __pyx_t_4) < (0)) __PYX_ERR(4, 1705, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* 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; -} -/* #### Code section: module_exttypes ### */ + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_119CDLHIGHWAVE, 0, __pyx_mstate_global->__pyx_n_u_CDLHIGHWAVE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[61])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1737, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHIGHWAVE, __pyx_t_4) < (0)) __PYX_ERR(4, 1737, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -static PyMethodDef __pyx_methods[] = { - {0, 0, 0, 0} -}; -/* #### Code section: initfunc_declarations ### */ -static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(__pyx_mstatetype *__pyx_mstate); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(__pyx_mstatetype *__pyx_mstate); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_InitConstants(__pyx_mstatetype *__pyx_mstate); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_modinit_global_init_code(__pyx_mstatetype *__pyx_mstate); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_modinit_variable_export_code(__pyx_mstatetype *__pyx_mstate); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_modinit_function_export_code(__pyx_mstatetype *__pyx_mstate); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_modinit_type_init_code(__pyx_mstatetype *__pyx_mstate); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_modinit_type_import_code(__pyx_mstatetype *__pyx_mstate); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_modinit_variable_import_code(__pyx_mstatetype *__pyx_mstate); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_modinit_function_import_code(__pyx_mstatetype *__pyx_mstate); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_CreateCodeObjects(__pyx_mstatetype *__pyx_mstate); /*proto*/ -/* #### Code section: init_module ### */ + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_121CDLHIKKAKE, 0, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[62])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1769, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKE, __pyx_t_4) < (0)) __PYX_ERR(4, 1769, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -static int __Pyx_modinit_global_init_code(__pyx_mstatetype *__pyx_mstate) { - __Pyx_RefNannyDeclarations - CYTHON_UNUSED_VAR(__pyx_mstate); - __Pyx_RefNannySetupContext("__Pyx_modinit_global_init_code", 0); - /*--- Global init code ---*/ - __Pyx_RefNannyFinishContext(); - return 0; -} + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_123CDLHIKKAKEMOD, 0, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKEMOD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[63])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1801, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKEMOD, __pyx_t_4) < (0)) __PYX_ERR(4, 1801, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -static int __Pyx_modinit_variable_export_code(__pyx_mstatetype *__pyx_mstate) { - __Pyx_RefNannyDeclarations - CYTHON_UNUSED_VAR(__pyx_mstate); - __Pyx_RefNannySetupContext("__Pyx_modinit_variable_export_code", 0); - /*--- Variable export code ---*/ - __Pyx_RefNannyFinishContext(); - return 0; -} + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_125CDLHOMINGPIGEON, 0, __pyx_mstate_global->__pyx_n_u_CDLHOMINGPIGEON, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[64])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1833, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHOMINGPIGEON, __pyx_t_4) < (0)) __PYX_ERR(4, 1833, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -static int __Pyx_modinit_function_export_code(__pyx_mstatetype *__pyx_mstate) { - __Pyx_RefNannyDeclarations - CYTHON_UNUSED_VAR(__pyx_mstate); - __Pyx_RefNannySetupContext("__Pyx_modinit_function_export_code", 0); - /*--- Function export code ---*/ - __Pyx_RefNannyFinishContext(); - return 0; -} + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_127CDLIDENTICAL3CROWS, 0, __pyx_mstate_global->__pyx_n_u_CDLIDENTICAL3CROWS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[65])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1865, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLIDENTICAL3CROWS, __pyx_t_4) < (0)) __PYX_ERR(4, 1865, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -static int __Pyx_modinit_type_init_code(__pyx_mstatetype *__pyx_mstate) { - __Pyx_RefNannyDeclarations - CYTHON_UNUSED_VAR(__pyx_mstate); - __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0); - /*--- Type init code ---*/ - __Pyx_RefNannyFinishContext(); - return 0; -} + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_129CDLINNECK, 0, __pyx_mstate_global->__pyx_n_u_CDLINNECK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[66])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1897, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLINNECK, __pyx_t_4) < (0)) __PYX_ERR(4, 1897, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -static int __Pyx_modinit_type_import_code(__pyx_mstatetype *__pyx_mstate) { - __Pyx_RefNannyDeclarations - CYTHON_UNUSED_VAR(__pyx_mstate); - 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_mstate->__pyx_ptype_7cpython_4type_type = __Pyx_ImportType_3_2_8(__pyx_t_1, __Pyx_BUILTIN_MODULE_NAME, "type", - #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 - sizeof(PyTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyTypeObject), - #elif CYTHON_COMPILING_IN_LIMITED_API - 0, 0, - #else - sizeof(PyHeapTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyHeapTypeObject), + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_131CDLINVERTEDHAMMER, 0, __pyx_mstate_global->__pyx_n_u_CDLINVERTEDHAMMER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[67])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1929, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_ImportType_CheckSize_Warn_3_2_8); if (!__pyx_mstate->__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(3, 229, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_mstate->__pyx_ptype_5numpy_dtype = __Pyx_ImportType_3_2_8(__pyx_t_1, "numpy", "dtype", - #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 - sizeof(PyArray_Descr), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyArray_Descr), - #elif CYTHON_COMPILING_IN_LIMITED_API - sizeof(PyArray_Descr), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyArray_Descr), - #else - sizeof(PyArray_Descr), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyArray_Descr), + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLINVERTEDHAMMER, __pyx_t_4) < (0)) __PYX_ERR(4, 1929, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_133CDLKICKING, 0, __pyx_mstate_global->__pyx_n_u_CDLKICKING, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[68])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1961, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_ImportType_CheckSize_Ignore_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_dtype) __PYX_ERR(3, 229, __pyx_L1_error) - __pyx_mstate->__pyx_ptype_5numpy_flatiter = __Pyx_ImportType_3_2_8(__pyx_t_1, "numpy", "flatiter", - #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 - sizeof(PyArrayIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyArrayIterObject), - #elif CYTHON_COMPILING_IN_LIMITED_API - sizeof(PyArrayIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyArrayIterObject), - #else - sizeof(PyArrayIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyArrayIterObject), + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLKICKING, __pyx_t_4) < (0)) __PYX_ERR(4, 1961, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_135CDLKICKINGBYLENGTH, 0, __pyx_mstate_global->__pyx_n_u_CDLKICKINGBYLENGTH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[69])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1993, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_ImportType_CheckSize_Ignore_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_flatiter) __PYX_ERR(3, 286, __pyx_L1_error) - __pyx_mstate->__pyx_ptype_5numpy_broadcast = __Pyx_ImportType_3_2_8(__pyx_t_1, "numpy", "broadcast", - #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 - sizeof(PyArrayMultiIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyArrayMultiIterObject), - #elif CYTHON_COMPILING_IN_LIMITED_API - sizeof(PyArrayMultiIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyArrayMultiIterObject), - #else - sizeof(PyArrayMultiIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyArrayMultiIterObject), + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLKICKINGBYLENGTH, __pyx_t_4) < (0)) __PYX_ERR(4, 1993, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_137CDLLADDERBOTTOM, 0, __pyx_mstate_global->__pyx_n_u_CDLLADDERBOTTOM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[70])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2025, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_ImportType_CheckSize_Ignore_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_broadcast) __PYX_ERR(3, 290, __pyx_L1_error) - __pyx_mstate->__pyx_ptype_5numpy_ndarray = __Pyx_ImportType_3_2_8(__pyx_t_1, "numpy", "ndarray", - #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 - sizeof(PyArrayObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyArrayObject), - #elif CYTHON_COMPILING_IN_LIMITED_API - sizeof(PyArrayObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyArrayObject), - #else - sizeof(PyArrayObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyArrayObject), + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLLADDERBOTTOM, __pyx_t_4) < (0)) __PYX_ERR(4, 2025, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_139CDLLONGLEGGEDDOJI, 0, __pyx_mstate_global->__pyx_n_u_CDLLONGLEGGEDDOJI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[71])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2057, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_ImportType_CheckSize_Ignore_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_ndarray) __PYX_ERR(3, 329, __pyx_L1_error) - __pyx_mstate->__pyx_ptype_5numpy_generic = __Pyx_ImportType_3_2_8(__pyx_t_1, "numpy", "generic", - #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 - sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), - #elif CYTHON_COMPILING_IN_LIMITED_API - sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), - #else - sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLLONGLEGGEDDOJI, __pyx_t_4) < (0)) __PYX_ERR(4, 2057, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_141CDLLONGLINE, 0, __pyx_mstate_global->__pyx_n_u_CDLLONGLINE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[72])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2089, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_ImportType_CheckSize_Warn_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_generic) __PYX_ERR(3, 847, __pyx_L1_error) - __pyx_mstate->__pyx_ptype_5numpy_number = __Pyx_ImportType_3_2_8(__pyx_t_1, "numpy", "number", - #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 - sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), - #elif CYTHON_COMPILING_IN_LIMITED_API - sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), - #else - sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLLONGLINE, __pyx_t_4) < (0)) __PYX_ERR(4, 2089, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_143CDLMARUBOZU, 0, __pyx_mstate_global->__pyx_n_u_CDLMARUBOZU, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[73])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2121, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_ImportType_CheckSize_Warn_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_number) __PYX_ERR(3, 849, __pyx_L1_error) - __pyx_mstate->__pyx_ptype_5numpy_integer = __Pyx_ImportType_3_2_8(__pyx_t_1, "numpy", "integer", - #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 - sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), - #elif CYTHON_COMPILING_IN_LIMITED_API - sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), - #else - sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLMARUBOZU, __pyx_t_4) < (0)) __PYX_ERR(4, 2121, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_145CDLMATCHINGLOW, 0, __pyx_mstate_global->__pyx_n_u_CDLMATCHINGLOW, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[74])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2153, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_ImportType_CheckSize_Warn_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_integer) __PYX_ERR(3, 851, __pyx_L1_error) - __pyx_mstate->__pyx_ptype_5numpy_signedinteger = __Pyx_ImportType_3_2_8(__pyx_t_1, "numpy", "signedinteger", - #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 - sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), - #elif CYTHON_COMPILING_IN_LIMITED_API - sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), - #else - sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLMATCHINGLOW, __pyx_t_4) < (0)) __PYX_ERR(4, 2153, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = PyFloat_FromDouble(((double)0.5)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2187, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + + __pyx_t_11 = PyTuple_Pack(1, __pyx_t_4); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 2185, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_147CDLMATHOLD, 0, __pyx_mstate_global->__pyx_n_u_CDLMATHOLD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[75])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2185, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_ImportType_CheckSize_Warn_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_signedinteger) __PYX_ERR(3, 853, __pyx_L1_error) - __pyx_mstate->__pyx_ptype_5numpy_unsignedinteger = __Pyx_ImportType_3_2_8(__pyx_t_1, "numpy", "unsignedinteger", - #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 - sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), - #elif CYTHON_COMPILING_IN_LIMITED_API - sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), - #else - sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_11); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLMATHOLD, __pyx_t_4) < (0)) __PYX_ERR(4, 2185, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2221, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + + __pyx_t_11 = PyTuple_Pack(1, __pyx_t_4); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 2219, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_149CDLMORNINGDOJISTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLMORNINGDOJISTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[76])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2219, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_ImportType_CheckSize_Warn_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_unsignedinteger) __PYX_ERR(3, 855, __pyx_L1_error) - __pyx_mstate->__pyx_ptype_5numpy_inexact = __Pyx_ImportType_3_2_8(__pyx_t_1, "numpy", "inexact", - #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 - sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), - #elif CYTHON_COMPILING_IN_LIMITED_API - sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), - #else - sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_11); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLMORNINGDOJISTAR, __pyx_t_4) < (0)) __PYX_ERR(4, 2219, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2255, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + + __pyx_t_11 = PyTuple_Pack(1, __pyx_t_4); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 2253, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_151CDLMORNINGSTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLMORNINGSTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[77])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2253, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_ImportType_CheckSize_Warn_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_inexact) __PYX_ERR(3, 857, __pyx_L1_error) - __pyx_mstate->__pyx_ptype_5numpy_floating = __Pyx_ImportType_3_2_8(__pyx_t_1, "numpy", "floating", - #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 - sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), - #elif CYTHON_COMPILING_IN_LIMITED_API - sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), - #else - sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_11); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLMORNINGSTAR, __pyx_t_4) < (0)) __PYX_ERR(4, 2253, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_153CDLONNECK, 0, __pyx_mstate_global->__pyx_n_u_CDLONNECK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[78])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2287, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_ImportType_CheckSize_Warn_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_floating) __PYX_ERR(3, 859, __pyx_L1_error) - __pyx_mstate->__pyx_ptype_5numpy_complexfloating = __Pyx_ImportType_3_2_8(__pyx_t_1, "numpy", "complexfloating", - #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 - sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), - #elif CYTHON_COMPILING_IN_LIMITED_API - sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), - #else - sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLONNECK, __pyx_t_4) < (0)) __PYX_ERR(4, 2287, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_155CDLPIERCING, 0, __pyx_mstate_global->__pyx_n_u_CDLPIERCING, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[79])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2319, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_ImportType_CheckSize_Warn_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_complexfloating) __PYX_ERR(3, 861, __pyx_L1_error) - __pyx_mstate->__pyx_ptype_5numpy_flexible = __Pyx_ImportType_3_2_8(__pyx_t_1, "numpy", "flexible", - #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 - sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), - #elif CYTHON_COMPILING_IN_LIMITED_API - sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), - #else - sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLPIERCING, __pyx_t_4) < (0)) __PYX_ERR(4, 2319, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_157CDLRICKSHAWMAN, 0, __pyx_mstate_global->__pyx_n_u_CDLRICKSHAWMAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[80])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2351, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_ImportType_CheckSize_Warn_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_flexible) __PYX_ERR(3, 863, __pyx_L1_error) - __pyx_mstate->__pyx_ptype_5numpy_character = __Pyx_ImportType_3_2_8(__pyx_t_1, "numpy", "character", - #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 - sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), - #elif CYTHON_COMPILING_IN_LIMITED_API - sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), - #else - sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyObject), + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLRICKSHAWMAN, __pyx_t_4) < (0)) __PYX_ERR(4, 2351, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_159CDLRISEFALL3METHODS, 0, __pyx_mstate_global->__pyx_n_u_CDLRISEFALL3METHODS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[81])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2383, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_ImportType_CheckSize_Warn_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_character) __PYX_ERR(3, 865, __pyx_L1_error) - __pyx_mstate->__pyx_ptype_5numpy_ufunc = __Pyx_ImportType_3_2_8(__pyx_t_1, "numpy", "ufunc", - #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 - sizeof(PyUFuncObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyUFuncObject), - #elif CYTHON_COMPILING_IN_LIMITED_API - sizeof(PyUFuncObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyUFuncObject), - #else - sizeof(PyUFuncObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_8(PyUFuncObject), + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLRISEFALL3METHODS, __pyx_t_4) < (0)) __PYX_ERR(4, 2383, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_161CDLSEPARATINGLINES, 0, __pyx_mstate_global->__pyx_n_u_CDLSEPARATINGLINES, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[82])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2415, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_ImportType_CheckSize_Ignore_3_2_8); if (!__pyx_mstate->__pyx_ptype_5numpy_ufunc) __PYX_ERR(3, 946, __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; -} + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLSEPARATINGLINES, __pyx_t_4) < (0)) __PYX_ERR(4, 2415, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -static int __Pyx_modinit_variable_import_code(__pyx_mstatetype *__pyx_mstate) { - __Pyx_RefNannyDeclarations - CYTHON_UNUSED_VAR(__pyx_mstate); - __Pyx_RefNannySetupContext("__Pyx_modinit_variable_import_code", 0); - /*--- Variable import code ---*/ - __Pyx_RefNannyFinishContext(); - return 0; -} + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_163CDLSHOOTINGSTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLSHOOTINGSTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[83])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2447, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLSHOOTINGSTAR, __pyx_t_4) < (0)) __PYX_ERR(4, 2447, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -static int __Pyx_modinit_function_import_code(__pyx_mstatetype *__pyx_mstate) { - __Pyx_RefNannyDeclarations - CYTHON_UNUSED_VAR(__pyx_mstate); - __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0); - /*--- Function import code ---*/ - __Pyx_RefNannyFinishContext(); - return 0; -} + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_165CDLSHORTLINE, 0, __pyx_mstate_global->__pyx_n_u_CDLSHORTLINE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[84])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2479, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLSHORTLINE, __pyx_t_4) < (0)) __PYX_ERR(4, 2479, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -#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}, - #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING - {Py_mod_gil, __Pyx_FREETHREADING_COMPATIBLE}, + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_167CDLSPINNINGTOP, 0, __pyx_mstate_global->__pyx_n_u_CDLSPINNINGTOP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[85])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2511, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - #if PY_VERSION_HEX >= 0x030C0000 && CYTHON_USE_MODULE_STATE - {Py_mod_multiple_interpreters, Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED}, + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLSPINNINGTOP, __pyx_t_4) < (0)) __PYX_ERR(4, 2511, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_169CDLSTALLEDPATTERN, 0, __pyx_mstate_global->__pyx_n_u_CDLSTALLEDPATTERN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[86])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2543, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - {0, NULL} -}; -#endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLSTALLEDPATTERN, __pyx_t_4) < (0)) __PYX_ERR(4, 2543, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -#ifdef __cplusplus -namespace { - struct PyModuleDef __pyx_moduledef = - #else - static struct PyModuleDef __pyx_moduledef = + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_171CDLSTICKSANDWICH, 0, __pyx_mstate_global->__pyx_n_u_CDLSTICKSANDWICH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[87])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2575, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - { - PyModuleDef_HEAD_INIT, - "_ta_lib", - 0, /* m_doc */ - #if CYTHON_USE_MODULE_STATE - sizeof(__pyx_mstatetype), /* m_size */ - #else - (CYTHON_PEP489_MULTI_PHASE_INIT) ? 0 : -1, /* m_size */ - #endif - __pyx_methods /* m_methods */, - #if CYTHON_PEP489_MULTI_PHASE_INIT - __pyx_moduledef_slots, /* m_slots */ - #else - NULL, /* m_reload */ - #endif - #if CYTHON_USE_MODULE_STATE - __pyx_m_traverse, /* m_traverse */ - __pyx_m_clear, /* m_clear */ - NULL /* m_free */ - #else - NULL, /* m_traverse */ - NULL, /* m_clear */ - NULL /* m_free */ - #endif - }; - #ifdef __cplusplus -} /* anonymous namespace */ -#endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLSTICKSANDWICH, __pyx_t_4) < (0)) __PYX_ERR(4, 2575, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -/* PyModInitFuncType */ -#ifndef CYTHON_NO_PYINIT_EXPORT - #define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC -#else - #ifdef __cplusplus - #define __Pyx_PyMODINIT_FUNC extern "C" PyObject * - #else - #define __Pyx_PyMODINIT_FUNC PyObject * + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_173CDLTAKURI, 0, __pyx_mstate_global->__pyx_n_u_CDLTAKURI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[88])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2607, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif -#endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLTAKURI, __pyx_t_4) < (0)) __PYX_ERR(4, 2607, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -__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); -} -/* ModuleCreationPEP489 */ -#if CYTHON_COMPILING_IN_LIMITED_API && (__PYX_LIMITED_VERSION_HEX < 0x03090000\ - || ((defined(_WIN32) || defined(WIN32) || defined(MS_WINDOWS)) && __PYX_LIMITED_VERSION_HEX < 0x030A0000)) -static PY_INT64_T __Pyx_GetCurrentInterpreterId(void) { - { - PyObject *module = PyImport_ImportModule("_interpreters"); // 3.13+ I think - if (!module) { - PyErr_Clear(); // just try the 3.8-3.12 version - module = PyImport_ImportModule("_xxsubinterpreters"); - if (!module) goto bad; - } - PyObject *current = PyObject_CallMethod(module, "get_current", NULL); - Py_DECREF(module); - if (!current) goto bad; - if (PyTuple_Check(current)) { - PyObject *new_current = PySequence_GetItem(current, 0); - Py_DECREF(current); - current = new_current; - if (!new_current) goto bad; - } - long long as_c_int = PyLong_AsLongLong(current); - Py_DECREF(current); - return as_c_int; - } - bad: - PySys_WriteStderr("__Pyx_GetCurrentInterpreterId failed. Try setting the C define CYTHON_PEP489_MULTI_PHASE_INIT=0\n"); - return -1; -} -#endif -#if !CYTHON_USE_MODULE_STATE -static CYTHON_SMALL_CODE int __Pyx_check_single_interpreter(void) { - static PY_INT64_T main_interpreter_id = -1; -#if CYTHON_COMPILING_IN_GRAAL && defined(GRAALPY_VERSION_NUM) && GRAALPY_VERSION_NUM > 0x19000000 - PY_INT64_T current_id = GraalPyInterpreterState_GetIDFromThreadState(PyThreadState_Get()); -#elif CYTHON_COMPILING_IN_GRAAL - PY_INT64_T current_id = PyInterpreterState_GetIDFromThreadState(PyThreadState_Get()); -#elif CYTHON_COMPILING_IN_LIMITED_API && (__PYX_LIMITED_VERSION_HEX < 0x03090000\ - || ((defined(_WIN32) || defined(WIN32) || defined(MS_WINDOWS)) && __PYX_LIMITED_VERSION_HEX < 0x030A0000)) - PY_INT64_T current_id = __Pyx_GetCurrentInterpreterId(); -#elif CYTHON_COMPILING_IN_LIMITED_API - PY_INT64_T current_id = PyInterpreterState_GetID(PyInterpreterState_Get()); -#else - PY_INT64_T current_id = PyInterpreterState_GetID(PyThreadState_Get()->interp); -#endif - if (unlikely(current_id == -1)) { - return -1; - } - if (main_interpreter_id == -1) { - main_interpreter_id = current_id; - return 0; - } else if (unlikely(main_interpreter_id != current_id)) { - PyErr_SetString( - PyExc_ImportError, - "Interpreter change detected - this module can only be loaded into one interpreter per process."); - return -1; - } - return 0; -} -#endif -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, PyModuleDef *def) { - PyObject *module = NULL, *moddict, *modname; - CYTHON_UNUSED_VAR(def); - #if !CYTHON_USE_MODULE_STATE - if (__Pyx_check_single_interpreter()) - return NULL; - #endif - 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; -} + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_175CDLTASUKIGAP, 0, __pyx_mstate_global->__pyx_n_u_CDLTASUKIGAP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[89])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2639, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLTASUKIGAP, __pyx_t_4) < (0)) __PYX_ERR(4, 2639, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_177CDLTHRUSTING, 0, __pyx_mstate_global->__pyx_n_u_CDLTHRUSTING, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[90])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2671, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLTHRUSTING, __pyx_t_4) < (0)) __PYX_ERR(4, 2671, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -static CYTHON_SMALL_CODE int __pyx_pymod_exec__ta_lib(PyObject *__pyx_pyinit_module) -#endif -{ - int stringtab_initialized = 0; - #if CYTHON_USE_MODULE_STATE - int pystate_addmodule_run = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_179CDLTRISTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLTRISTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[91])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2703, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __pyx_mstatetype *__pyx_mstate = NULL; - 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; - size_t __pyx_t_7; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - PyObject *__pyx_t_10 = NULL; - PyObject *__pyx_t_11 = NULL; - PyObject *__pyx_t_12 = NULL; - PyObject *__pyx_t_13 = NULL; - PyObject *__pyx_t_14 = NULL; - PyObject *__pyx_t_15 = NULL; - PyObject *__pyx_t_16 = NULL; - PyObject *(*__pyx_t_17)(PyObject *); - Py_ssize_t __pyx_t_18; - PyObject *__pyx_t_19 = NULL; - PyObject *__pyx_t_20 = NULL; - PyObject *__pyx_t_21 = NULL; - double __pyx_t_22; - int __pyx_t_23; - PyObject *__pyx_t_24 = NULL; - PyObject *__pyx_t_25 = NULL; - PyObject *__pyx_t_26 = NULL; - int __pyx_t_27; - PyObject *__pyx_t_28 = NULL; - PyObject *__pyx_t_29 = NULL; - int __pyx_t_30; - int __pyx_t_31; - int __pyx_t_32; - PyObject *(*__pyx_t_33)(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; - } - #else - if (__pyx_m) return __Pyx_NewRef(__pyx_m); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLTRISTAR, __pyx_t_4) < (0)) __PYX_ERR(4, 2703, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_181CDLUNIQUE3RIVER, 0, __pyx_mstate_global->__pyx_n_u_CDLUNIQUE3RIVER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[92])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2735, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - /*--- Module creation code ---*/ - #if CYTHON_PEP489_MULTI_PHASE_INIT - __pyx_t_1 = __pyx_pyinit_module; - Py_INCREF(__pyx_t_1); - #else - __pyx_t_1 = PyModule_Create(&__pyx_moduledef); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLUNIQUE3RIVER, __pyx_t_4) < (0)) __PYX_ERR(4, 2735, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_183CDLUPSIDEGAP2CROWS, 0, __pyx_mstate_global->__pyx_n_u_CDLUPSIDEGAP2CROWS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[93])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2767, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - #if CYTHON_USE_MODULE_STATE - { - int add_module_result = __Pyx_State_AddModule(__pyx_t_1, &__pyx_moduledef); - __pyx_t_1 = 0; /* transfer ownership from __pyx_t_1 to "_ta_lib" pseudovariable */ - if (unlikely((add_module_result < 0))) __PYX_ERR(0, 1, __pyx_L1_error) - pystate_addmodule_run = 1; - } - #else - __pyx_m = __pyx_t_1; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLUPSIDEGAP2CROWS, __pyx_t_4) < (0)) __PYX_ERR(4, 2767, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_185CDLXSIDEGAP3METHODS, 0, __pyx_mstate_global->__pyx_n_u_CDLXSIDEGAP3METHODS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[94])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2799, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING - PyUnstable_Module_SetGIL(__pyx_m, Py_MOD_GIL_USED); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLXSIDEGAP3METHODS, __pyx_t_4) < (0)) __PYX_ERR(4, 2799, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_187CEIL, 0, __pyx_mstate_global->__pyx_n_u_CEIL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[95])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2831, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __pyx_mstate = __pyx_mstate_global; - CYTHON_UNUSED_VAR(__pyx_t_1); - __pyx_mstate->__pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_mstate->__pyx_d)) __PYX_ERR(0, 1, __pyx_L1_error) - Py_INCREF(__pyx_mstate->__pyx_d); - __pyx_mstate->__pyx_b = __Pyx_PyImport_AddModuleRef(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_mstate->__pyx_b)) __PYX_ERR(0, 1, __pyx_L1_error) - __pyx_mstate->__pyx_cython_runtime = __Pyx_PyImport_AddModuleRef("cython_runtime"); if (unlikely(!__pyx_mstate->__pyx_cython_runtime)) __PYX_ERR(0, 1, __pyx_L1_error) - if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_mstate->__pyx_b) < 0) __PYX_ERR(0, 1, __pyx_L1_error) - /* ImportRefnannyAPI */ - #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"); - } + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CEIL, __pyx_t_4) < (0)) __PYX_ERR(4, 2831, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2862, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + + __pyx_t_11 = PyTuple_Pack(1, __pyx_t_4); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 2860, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_189CMF, 0, __pyx_mstate_global->__pyx_n_u_CMF, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[96])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2860, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - -__Pyx_RefNannySetupContext("PyInit__ta_lib", 0); - __Pyx_init_runtime_version(); - if (__Pyx_check_binary_version(__PYX_LIMITED_VERSION_HEX, __Pyx_get_runtime_version(), CYTHON_COMPILING_IN_LIMITED_API) < (0)) __PYX_ERR(0, 1, __pyx_L1_error) - __pyx_mstate->__pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_mstate->__pyx_empty_tuple)) __PYX_ERR(0, 1, __pyx_L1_error) - __pyx_mstate->__pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_mstate->__pyx_empty_bytes)) __PYX_ERR(0, 1, __pyx_L1_error) - __pyx_mstate->__pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_mstate->__pyx_empty_unicode)) __PYX_ERR(0, 1, __pyx_L1_error) - /*--- Library function declarations ---*/ - /*--- Initialize various global constants etc. ---*/ - if (__Pyx_InitConstants(__pyx_mstate) < (0)) __PYX_ERR(0, 1, __pyx_L1_error) - stringtab_initialized = 1; - if (__Pyx_InitGlobals() < (0)) __PYX_ERR(0, 1, __pyx_L1_error) - if (__pyx_module_is_main_talib___ta_lib) { - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_name_2, __pyx_mstate_global->__pyx_n_u_main) < (0)) __PYX_ERR(0, 1, __pyx_L1_error) - } - { - PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(0, 1, __pyx_L1_error) - if (!PyDict_GetItemString(modules, "talib._ta_lib")) { - if (unlikely((PyDict_SetItemString(modules, "talib._ta_lib", __pyx_m) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) - } - } - /*--- Builtin init code ---*/ - if (__Pyx_InitCachedBuiltins(__pyx_mstate) < (0)) __PYX_ERR(0, 1, __pyx_L1_error) - /*--- Constants init code ---*/ - if (__Pyx_InitCachedConstants(__pyx_mstate) < (0)) __PYX_ERR(0, 1, __pyx_L1_error) - if (__Pyx_CreateCodeObjects(__pyx_mstate) < (0)) __PYX_ERR(0, 1, __pyx_L1_error) - /*--- Global type/function init code ---*/ - (void)__Pyx_modinit_global_init_code(__pyx_mstate); - (void)__Pyx_modinit_variable_export_code(__pyx_mstate); - (void)__Pyx_modinit_function_export_code(__pyx_mstate); - (void)__Pyx_modinit_type_init_code(__pyx_mstate); - if (unlikely((__Pyx_modinit_type_import_code(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) - (void)__Pyx_modinit_variable_import_code(__pyx_mstate); - (void)__Pyx_modinit_function_import_code(__pyx_mstate); - /*--- Execution code ---*/ + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_11); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CMF, __pyx_t_4) < (0)) __PYX_ERR(4, 2860, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_PyBytes_FromString(TA_GetVersionString()); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 4, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_version, __pyx_t_2) < (0)) __PYX_ERR(1, 4, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2896, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_1_ta_check_success, 0, __pyx_mstate_global->__pyx_n_u_ta_check_success, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[0])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 6, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_11 = PyTuple_Pack(1, __pyx_t_4); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 2894, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_191CMO, 0, __pyx_mstate_global->__pyx_n_u_CMO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[97])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2894, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_check_success, __pyx_t_2) < (0)) __PYX_ERR(1, 6, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_11); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CMO, __pyx_t_4) < (0)) __PYX_ERR(4, 2894, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_3_ta_initialize, 0, __pyx_mstate_global->__pyx_n_u_ta_initialize, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[1])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 50, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2927, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + + __pyx_t_11 = PyTuple_Pack(1, __pyx_t_4); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 2925, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_193CMOU, 0, __pyx_mstate_global->__pyx_n_u_CMOU, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[98])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2925, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_initialize, __pyx_t_2) < (0)) __PYX_ERR(1, 50, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_11); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CMOU, __pyx_t_4) < (0)) __PYX_ERR(4, 2925, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2958, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 2958, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2958, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_5_ta_shutdown, 0, __pyx_mstate_global->__pyx_n_u_ta_shutdown, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[2])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 55, __pyx_L1_error) + __pyx_t_2 = PyTuple_Pack(3, __pyx_t_4, __pyx_t_11, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2956, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_195COPPOCK, 0, __pyx_mstate_global->__pyx_n_u_COPPOCK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[99])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2956, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_shutdown, __pyx_t_2) < (0)) __PYX_ERR(1, 55, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_COPPOCK, __pyx_t_3) < (0)) __PYX_ERR(4, 2956, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __Pyx_PEP560_update_bases(__pyx_mstate_global->__pyx_tuple[2]); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 60, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 60, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2991, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_Py3MetaclassPrepare(__pyx_t_3, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_MA_Type, __pyx_mstate_global->__pyx_n_u_MA_Type, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, (PyObject *) NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 60, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (__pyx_t_2 != __pyx_mstate_global->__pyx_tuple[2]) { - if (unlikely((PyDict_SetItemString(__pyx_t_4, "__orig_bases__", __pyx_mstate_global->__pyx_tuple[2]) < 0))) __PYX_ERR(1, 60, __pyx_L1_error) - } - __pyx_t_6 = NULL; - __pyx_t_7 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_mstate_global->__pyx_int_9}; - __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)(&PyRange_Type), __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 61, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - } - { - Py_ssize_t index = -1; - PyObject** temps[9] = {&__pyx_t_6,&__pyx_t_8,&__pyx_t_9,&__pyx_t_10,&__pyx_t_11,&__pyx_t_12,&__pyx_t_13,&__pyx_t_14,&__pyx_t_15}; - __pyx_t_16 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_16)) __PYX_ERR(1, 61, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_17 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_16); - for (index=0; index < 9; index++) { - PyObject* item = __pyx_t_17(__pyx_t_16); if (unlikely(!item)) goto __pyx_L2_unpacking_failed; - __Pyx_GOTREF(item); - *(temps[index]) = item; - } - if (__Pyx_IternextUnpackEndCheck(__pyx_t_17(__pyx_t_16), 9) < (0)) __PYX_ERR(1, 61, __pyx_L1_error) - __pyx_t_17 = NULL; - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - goto __pyx_L3_unpacking_done; - __pyx_L2_unpacking_failed:; - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - __pyx_t_17 = NULL; - if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(1, 61, __pyx_L1_error) - __pyx_L3_unpacking_done:; - } - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_SMA, __pyx_t_6) < (0)) __PYX_ERR(1, 61, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_EMA, __pyx_t_8) < (0)) __PYX_ERR(1, 61, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_WMA, __pyx_t_9) < (0)) __PYX_ERR(1, 61, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_DEMA, __pyx_t_10) < (0)) __PYX_ERR(1, 61, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_TEMA, __pyx_t_11) < (0)) __PYX_ERR(1, 61, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_TRIMA, __pyx_t_12) < (0)) __PYX_ERR(1, 61, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_KAMA, __pyx_t_13) < (0)) __PYX_ERR(1, 61, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_MAMA, __pyx_t_14) < (0)) __PYX_ERR(1, 61, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_T3, __pyx_t_15) < (0)) __PYX_ERR(1, 61, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_7MA_Type_1__init__, 0, __pyx_mstate_global->__pyx_n_u_MA_Type___init, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[3])); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 63, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2989, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_197CORREL, 0, __pyx_mstate_global->__pyx_n_u_CORREL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[100])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2989, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_5) < (0)) __PYX_ERR(1, 63, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CORREL, __pyx_t_3) < (0)) __PYX_ERR(4, 2989, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_7MA_Type_3__getitem__, 0, __pyx_mstate_global->__pyx_n_u_MA_Type___getitem, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[4])); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 76, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_199COS, 0, __pyx_mstate_global->__pyx_n_u_COS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[101])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3022, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_getitem, __pyx_t_5) < (0)) __PYX_ERR(1, 76, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_COS, __pyx_t_3) < (0)) __PYX_ERR(4, 3022, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MA_Type, __pyx_t_2, __pyx_t_4, NULL, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 60, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_201COSH, 0, __pyx_mstate_global->__pyx_n_u_COSH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[102])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3051, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MA_Type, __pyx_t_5) < (0)) __PYX_ERR(1, 60, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_COSH, __pyx_t_3) < (0)) __PYX_ERR(4, 3051, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 79, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_7 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (1-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 79, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MA_Type, __pyx_t_2) < (0)) __PYX_ERR(1, 79, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_203CUMSUM, 0, __pyx_mstate_global->__pyx_n_u_CUMSUM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[103])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3080, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CUMSUM, __pyx_t_3) < (0)) __PYX_ERR(4, 3080, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 81, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3111, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_NONE, __pyx_mstate_global->__pyx_int_neg_1) < (0)) __PYX_ERR(1, 81, __pyx_L1_error) - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_func_unst_ids, __pyx_t_2) < (0)) __PYX_ERR(1, 81, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); - __pyx_t_2 = __pyx_mstate_global->__pyx_int_0; - __pyx_t_4 = __Pyx_PyList_Pack(24, __pyx_mstate_global->__pyx_n_u_ADX, __pyx_mstate_global->__pyx_n_u_ADXR, __pyx_mstate_global->__pyx_n_u_ATR, __pyx_mstate_global->__pyx_n_u_CMO, __pyx_mstate_global->__pyx_n_u_DX, __pyx_mstate_global->__pyx_n_u_EMA, __pyx_mstate_global->__pyx_n_u_HT_DCPERIOD, __pyx_mstate_global->__pyx_n_u_HT_DCPHASE, __pyx_mstate_global->__pyx_n_u_HT_PHASOR, __pyx_mstate_global->__pyx_n_u_HT_SINE, __pyx_mstate_global->__pyx_n_u_HT_TRENDLINE, __pyx_mstate_global->__pyx_n_u_HT_TRENDMODE, __pyx_mstate_global->__pyx_n_u_KAMA, __pyx_mstate_global->__pyx_n_u_MAMA, __pyx_mstate_global->__pyx_n_u_MFI, __pyx_mstate_global->__pyx_n_u_MINUS_DI, __pyx_mstate_global->__pyx_n_u_MINUS_DM, __pyx_mstate_global->__pyx_n_u_NATR, __pyx_mstate_global->__pyx_n_u_PLUS_DI, __pyx_mstate_global->__pyx_n_u_PLUS_DM, __pyx_mstate_global->__pyx_n_u_RSI, __pyx_mstate_global->__pyx_n_u_STOCHRSI, __pyx_mstate_global->__pyx_n_u_T3, __pyx_mstate_global->__pyx_n_u_ALL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 82, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = __pyx_t_4; __Pyx_INCREF(__pyx_t_3); - __pyx_t_18 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - for (;;) { - if (__pyx_t_18 >= 24) break; - __pyx_t_4 = __Pyx_PyList_GetItemRefFast(__pyx_t_3, __pyx_t_18, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_18; - if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 82, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_name, __pyx_t_4) < (0)) __PYX_ERR(1, 82, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_i, __pyx_t_2) < (0)) __PYX_ERR(1, 82, __pyx_L1_error) - __pyx_t_4 = __Pyx_PyLong_AddObjC(__pyx_t_2, __pyx_mstate_global->__pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 82, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_2); - __pyx_t_2 = __pyx_t_4; - __pyx_t_4 = 0; - - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_i); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 88, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_ta_func_unst_ids); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 88, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 88, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - if (unlikely((PyObject_SetItem(__pyx_t_5, __pyx_t_15, __pyx_t_4) < 0))) __PYX_ERR(1, 88, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - } + __pyx_t_11 = PyTuple_Pack(2, __pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 3109, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_7_ta_set_unstable_period, 0, __pyx_mstate_global->__pyx_n_u_ta_set_unstable_period, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[5])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 90, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_205CVI, 0, __pyx_mstate_global->__pyx_n_u_CVI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[104])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_set_unstable_period, __pyx_t_2) < (0)) __PYX_ERR(1, 90, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_11); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CVI, __pyx_t_2) < (0)) __PYX_ERR(4, 3109, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9_ta_get_unstable_period, 0, __pyx_mstate_global->__pyx_n_u_ta_get_unstable_period, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[6])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 96, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3144, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + __pyx_t_11 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 3142, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_207DEMA, 0, __pyx_mstate_global->__pyx_n_u_DEMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[105])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_get_unstable_period, __pyx_t_2) < (0)) __PYX_ERR(1, 96, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_11); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_DEMA, __pyx_t_2) < (0)) __PYX_ERR(4, 3142, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11_ta_set_compatibility, 0, __pyx_mstate_global->__pyx_n_u_ta_set_compatibility, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[7])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 102, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_209DIV, 0, __pyx_mstate_global->__pyx_n_u_DIV, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[106])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_set_compatibility, __pyx_t_2) < (0)) __PYX_ERR(1, 102, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_DIV, __pyx_t_2) < (0)) __PYX_ERR(4, 3173, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13_ta_get_compatibility, 0, __pyx_mstate_global->__pyx_n_u_ta_get_compatibility, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[8])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 107, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3206, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + __pyx_t_11 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 3204, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_211DONCHIAN, 0, __pyx_mstate_global->__pyx_n_u_DONCHIAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[107])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3204, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_get_compatibility, __pyx_t_2) < (0)) __PYX_ERR(1, 107, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_11); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_DONCHIAN, __pyx_t_2) < (0)) __PYX_ERR(4, 3204, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PEP560_update_bases(__pyx_mstate_global->__pyx_tuple[4]); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 112, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3244, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 112, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_Py3MetaclassPrepare(__pyx_t_3, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_CandleSettingType, __pyx_mstate_global->__pyx_n_u_CandleSettingType, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, (PyObject *) NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 112, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (__pyx_t_2 != __pyx_mstate_global->__pyx_tuple[4]) { - if (unlikely((PyDict_SetItemString(__pyx_t_4, "__orig_bases__", __pyx_mstate_global->__pyx_tuple[4]) < 0))) __PYX_ERR(1, 112, __pyx_L1_error) - } - - __pyx_t_5 = NULL; - __pyx_t_7 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_mstate_global->__pyx_int_12}; - __pyx_t_15 = __Pyx_PyObject_FastCall((PyObject*)(&PyRange_Type), __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 115, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - } - { - Py_ssize_t index = -1; - PyObject** temps[12] = {&__pyx_t_5,&__pyx_t_14,&__pyx_t_13,&__pyx_t_12,&__pyx_t_11,&__pyx_t_10,&__pyx_t_9,&__pyx_t_8,&__pyx_t_6,&__pyx_t_16,&__pyx_t_19,&__pyx_t_20}; - __pyx_t_21 = PyObject_GetIter(__pyx_t_15); if (unlikely(!__pyx_t_21)) __PYX_ERR(1, 113, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_21); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - __pyx_t_17 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_21); - for (index=0; index < 12; index++) { - PyObject* item = __pyx_t_17(__pyx_t_21); if (unlikely(!item)) goto __pyx_L7_unpacking_failed; - __Pyx_GOTREF(item); - *(temps[index]) = item; - } - if (__Pyx_IternextUnpackEndCheck(__pyx_t_17(__pyx_t_21), 12) < (0)) __PYX_ERR(1, 113, __pyx_L1_error) - __pyx_t_17 = NULL; - __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; - goto __pyx_L8_unpacking_done; - __pyx_L7_unpacking_failed:; - __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; - __pyx_t_17 = NULL; - if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(1, 113, __pyx_L1_error) - __pyx_L8_unpacking_done:; - } - - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_BodyLong, __pyx_t_5) < (0)) __PYX_ERR(1, 113, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_BodyVeryLong, __pyx_t_14) < (0)) __PYX_ERR(1, 113, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_BodyShort, __pyx_t_13) < (0)) __PYX_ERR(1, 113, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_BodyDoji, __pyx_t_12) < (0)) __PYX_ERR(1, 113, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ShadowLong, __pyx_t_11) < (0)) __PYX_ERR(1, 113, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ShadowVeryLong, __pyx_t_10) < (0)) __PYX_ERR(1, 113, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ShadowShort, __pyx_t_9) < (0)) __PYX_ERR(1, 114, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ShadowVeryShort, __pyx_t_8) < (0)) __PYX_ERR(1, 114, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_Near, __pyx_t_6) < (0)) __PYX_ERR(1, 114, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_Far, __pyx_t_16) < (0)) __PYX_ERR(1, 114, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_Equal, __pyx_t_19) < (0)) __PYX_ERR(1, 114, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_AllCandleSettings, __pyx_t_20) < (0)) __PYX_ERR(1, 114, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; - __pyx_t_15 = __Pyx_Py3ClassCreate(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_CandleSettingType, __pyx_t_2, __pyx_t_4, NULL, 0, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 112, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); + __pyx_t_11 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 3242, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_213DPO, 0, __pyx_mstate_global->__pyx_n_u_DPO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[108])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3242, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_15); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CandleSettingType, __pyx_t_15) < (0)) __PYX_ERR(1, 112, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_CandleSettingType); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 117, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_7 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (1-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 117, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CandleSettingType, __pyx_t_2) < (0)) __PYX_ERR(1, 117, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_11); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_DPO, __pyx_t_2) < (0)) __PYX_ERR(4, 3242, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PEP560_update_bases(__pyx_mstate_global->__pyx_tuple[6]); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 119, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 119, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_4, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_RangeType, __pyx_mstate_global->__pyx_n_u_RangeType, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, (PyObject *) NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 119, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (__pyx_t_2 != __pyx_mstate_global->__pyx_tuple[6]) { - if (unlikely((PyDict_SetItemString(__pyx_t_3, "__orig_bases__", __pyx_mstate_global->__pyx_tuple[6]) < 0))) __PYX_ERR(1, 119, __pyx_L1_error) - } - __pyx_t_20 = NULL; - __pyx_t_7 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_20, __pyx_mstate_global->__pyx_int_3}; - __pyx_t_15 = __Pyx_PyObject_FastCall((PyObject*)(&PyRange_Type), __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; - if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 120, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - } - { - Py_ssize_t index = -1; - __pyx_t_6 = PyObject_GetIter(__pyx_t_15); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 120, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - __pyx_t_17 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_6); - index = 0; __pyx_t_20 = __pyx_t_17(__pyx_t_6); if (unlikely(!__pyx_t_20)) goto __pyx_L9_unpacking_failed; - __Pyx_GOTREF(__pyx_t_20); - index = 1; __pyx_t_19 = __pyx_t_17(__pyx_t_6); if (unlikely(!__pyx_t_19)) goto __pyx_L9_unpacking_failed; - __Pyx_GOTREF(__pyx_t_19); - index = 2; __pyx_t_16 = __pyx_t_17(__pyx_t_6); if (unlikely(!__pyx_t_16)) goto __pyx_L9_unpacking_failed; - __Pyx_GOTREF(__pyx_t_16); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_17(__pyx_t_6), 3) < (0)) __PYX_ERR(1, 120, __pyx_L1_error) - __pyx_t_17 = NULL; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - goto __pyx_L10_unpacking_done; - __pyx_L9_unpacking_failed:; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_17 = NULL; - if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(1, 120, __pyx_L1_error) - __pyx_L10_unpacking_done:; - } - if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_RealBody, __pyx_t_20) < (0)) __PYX_ERR(1, 120, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; - if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_HighLow, __pyx_t_19) < (0)) __PYX_ERR(1, 120, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_Shadows, __pyx_t_16) < (0)) __PYX_ERR(1, 120, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - - __pyx_t_15 = __Pyx_Py3ClassCreate(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_RangeType, __pyx_t_2, __pyx_t_3, NULL, 0, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 119, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); + __pyx_t_11 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 3273, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_215DX, 0, __pyx_mstate_global->__pyx_n_u_DX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[109])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3273, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_15); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_RangeType, __pyx_t_15) < (0)) __PYX_ERR(1, 119, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_11); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_DX, __pyx_t_2) < (0)) __PYX_ERR(4, 3273, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_RangeType); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 122, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_7 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_7, (1-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 122, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_RangeType, __pyx_t_2) < (0)) __PYX_ERR(1, 122, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3308, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15_ta_set_candle_settings, 0, __pyx_mstate_global->__pyx_n_u_ta_set_candle_settings, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[9])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 124, __pyx_L1_error) + __pyx_t_11 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 3306, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_217EFI, 0, __pyx_mstate_global->__pyx_n_u_EFI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[110])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3306, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_set_candle_settings, __pyx_t_2) < (0)) __PYX_ERR(1, 124, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_11); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_EFI, __pyx_t_2) < (0)) __PYX_ERR(4, 3306, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_17_ta_restore_candle_default_settings, 0, __pyx_mstate_global->__pyx_n_u_ta_restore_candle_default_setti, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[10])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 129, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3340, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + __pyx_t_11 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 3338, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_219EMA, 0, __pyx_mstate_global->__pyx_n_u_EMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[111])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3338, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_restore_candle_default_setti, __pyx_t_2) < (0)) __PYX_ERR(1, 129, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_11); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_EMA, __pyx_t_2) < (0)) __PYX_ERR(4, 3338, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - { - PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_nan}; - __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_numpy, __pyx_imported_names, 1, __pyx_mstate_global->__pyx_kp_u_talib_numpy, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2, __pyx_L1_error) - } - __pyx_t_2 = __pyx_t_1; + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3371, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - { - PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_nan}; - __pyx_t_18 = 0; { - __pyx_t_3 = __Pyx_ImportFrom(__pyx_t_2, __pyx_imported_names[__pyx_t_18]); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_imported_names[__pyx_t_18], __pyx_t_3) < (0)) __PYX_ERR(4, 2, __pyx_L1_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_mstate_global->__pyx_n_u_nan); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 7, __pyx_L1_error) + __pyx_t_11 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 3369, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_221ER, 0, __pyx_mstate_global->__pyx_n_u_ER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[112])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3369, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_22 = __Pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_22 == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 7, __pyx_L1_error) + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_11); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ER, __pyx_t_2) < (0)) __PYX_ERR(4, 3369, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_5talib_7_ta_lib_NaN = __pyx_t_22; - __pyx_t_23 = __pyx_f_5numpy_import_array(); if (unlikely(__pyx_t_23 == ((int)-1))) __PYX_ERR(4, 15, __pyx_L1_error) - - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 144, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3402, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 142, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_11 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 3400, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_19ACCBANDS, 0, __pyx_mstate_global->__pyx_n_u_ACCBANDS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[11])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 142, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_223ERI, 0, __pyx_mstate_global->__pyx_n_u_ERI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[113])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3400, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ACCBANDS, __pyx_t_2) < (0)) __PYX_ERR(4, 142, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_11); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ERI, __pyx_t_2) < (0)) __PYX_ERR(4, 3400, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_21ACOS, 0, __pyx_mstate_global->__pyx_n_u_ACOS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[12])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 181, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_225EXP, 0, __pyx_mstate_global->__pyx_n_u_EXP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[114])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ACOS, __pyx_t_2) < (0)) __PYX_ERR(4, 181, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_EXP, __pyx_t_2) < (0)) __PYX_ERR(4, 3436, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_23AD, 0, __pyx_mstate_global->__pyx_n_u_AD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[13])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 210, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_227FLOOR, 0, __pyx_mstate_global->__pyx_n_u_FLOOR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[115])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3465, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AD, __pyx_t_2) < (0)) __PYX_ERR(4, 210, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_FLOOR, __pyx_t_2) < (0)) __PYX_ERR(4, 3465, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_25ADD, 0, __pyx_mstate_global->__pyx_n_u_ADD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[14])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 242, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3496, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + __pyx_t_11 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 3494, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_229FOSC, 0, __pyx_mstate_global->__pyx_n_u_FOSC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[116])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3494, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ADD, __pyx_t_2) < (0)) __PYX_ERR(4, 242, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_11); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_FOSC, __pyx_t_2) < (0)) __PYX_ERR(4, 3494, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 275, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3527, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 275, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 3527, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); - __pyx_t_4 = PyTuple_Pack(2, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 273, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = PyTuple_Pack(2, __pyx_t_2, __pyx_t_11); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3525, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_231FRACTAL, 0, __pyx_mstate_global->__pyx_n_u_FRACTAL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[117])); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 3525, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_11, __pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_27ADOSC, 0, __pyx_mstate_global->__pyx_n_u_ADOSC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[15])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 273, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_FRACTAL, __pyx_t_11) < (0)) __PYX_ERR(4, 3525, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + + __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_233HA, 0, __pyx_mstate_global->__pyx_n_u_HA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[118])); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 3561, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HA, __pyx_t_11) < (0)) __PYX_ERR(4, 3561, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + + __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 3604, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + + __pyx_t_3 = PyTuple_Pack(1, __pyx_t_11); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3602, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_235HMA, 0, __pyx_mstate_global->__pyx_n_u_HMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[119])); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 3602, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_4); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ADOSC, __pyx_t_3) < (0)) __PYX_ERR(4, 273, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_11, __pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HMA, __pyx_t_11) < (0)) __PYX_ERR(4, 3602, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 310, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_237HT_DCPERIOD, 0, __pyx_mstate_global->__pyx_n_u_HT_DCPERIOD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[120])); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 3633, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_DCPERIOD, __pyx_t_11) < (0)) __PYX_ERR(4, 3633, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_4 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 308, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_29ADX, 0, __pyx_mstate_global->__pyx_n_u_ADX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[16])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 308, __pyx_L1_error) + __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_239HT_DCPHASE, 0, __pyx_mstate_global->__pyx_n_u_HT_DCPHASE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[121])); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 3662, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_DCPHASE, __pyx_t_11) < (0)) __PYX_ERR(4, 3662, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + + __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_241HT_PHASOR, 0, __pyx_mstate_global->__pyx_n_u_HT_PHASOR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[122])); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 3691, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_PHASOR, __pyx_t_11) < (0)) __PYX_ERR(4, 3691, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + + __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_243HT_SINE, 0, __pyx_mstate_global->__pyx_n_u_HT_SINE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[123])); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 3723, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_SINE, __pyx_t_11) < (0)) __PYX_ERR(4, 3723, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + + __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_245HT_TRENDLINE, 0, __pyx_mstate_global->__pyx_n_u_HT_TRENDLINE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[124])); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 3755, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_TRENDLINE, __pyx_t_11) < (0)) __PYX_ERR(4, 3755, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + + __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_247HT_TRENDMODE, 0, __pyx_mstate_global->__pyx_n_u_HT_TRENDMODE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[125])); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 3784, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_TRENDMODE, __pyx_t_11) < (0)) __PYX_ERR(4, 3784, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + + __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 3815, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + + __pyx_t_3 = PyTuple_Pack(1, __pyx_t_11); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3813, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_249IMI, 0, __pyx_mstate_global->__pyx_n_u_IMI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[126])); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 3813, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_4); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ADX, __pyx_t_3) < (0)) __PYX_ERR(4, 308, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_11, __pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_IMI, __pyx_t_11) < (0)) __PYX_ERR(4, 3813, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 343, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 3847, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); - __pyx_t_4 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 341, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_31ADXR, 0, __pyx_mstate_global->__pyx_n_u_ADXR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[17])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 341, __pyx_L1_error) + __pyx_t_3 = PyTuple_Pack(1, __pyx_t_11); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3845, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_251KAMA, 0, __pyx_mstate_global->__pyx_n_u_KAMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[127])); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 3845, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_4); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ADXR, __pyx_t_3) < (0)) __PYX_ERR(4, 341, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_11, __pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_KAMA, __pyx_t_11) < (0)) __PYX_ERR(4, 3845, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 376, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 3878, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3878, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 376, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 376, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3878, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_15 = PyTuple_Pack(3, __pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 374, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); + __pyx_t_4 = PyTuple_Pack(3, __pyx_t_11, __pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3876, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_33APO, 0, __pyx_mstate_global->__pyx_n_u_APO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[18])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 374, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_253KC, 0, __pyx_mstate_global->__pyx_n_u_KC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[128])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3876, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_APO, __pyx_t_2) < (0)) __PYX_ERR(4, 374, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_KC, __pyx_t_2) < (0)) __PYX_ERR(4, 3876, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 409, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3919, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3919, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)13)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3919, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 3919, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __pyx_t_5 = __Pyx_PyLong_From_int(((int)13)); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 3919, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); - __pyx_t_15 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 407, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); + __pyx_t_10 = PyTuple_Pack(5, __pyx_t_2, __pyx_t_4, __pyx_t_3, __pyx_t_11, __pyx_t_5); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 3917, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_35AROON, 0, __pyx_mstate_global->__pyx_n_u_AROON, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[19])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 407, __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_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_255KDJ, 0, __pyx_mstate_global->__pyx_n_u_KDJ, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[129])); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 3917, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AROON, __pyx_t_2) < (0)) __PYX_ERR(4, 407, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_KDJ, __pyx_t_5) < (0)) __PYX_ERR(4, 3917, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 444, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 3962, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); - __pyx_t_15 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 442, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_37AROONOSC, 0, __pyx_mstate_global->__pyx_n_u_AROONOSC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[20])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 442, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_10 = PyTuple_Pack(1, __pyx_t_5); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 3960, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_257LINEARREG, 0, __pyx_mstate_global->__pyx_n_u_LINEARREG, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[130])); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 3960, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AROONOSC, __pyx_t_2) < (0)) __PYX_ERR(4, 442, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_LINEARREG, __pyx_t_5) < (0)) __PYX_ERR(4, 3960, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_39ASIN, 0, __pyx_mstate_global->__pyx_n_u_ASIN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[21])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 474, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 3993, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + + __pyx_t_10 = PyTuple_Pack(1, __pyx_t_5); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 3991, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_259LINEARREG_ANGLE, 0, __pyx_mstate_global->__pyx_n_u_LINEARREG_ANGLE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[131])); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 3991, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ASIN, __pyx_t_2) < (0)) __PYX_ERR(4, 474, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_LINEARREG_ANGLE, __pyx_t_5) < (0)) __PYX_ERR(4, 3991, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_41ATAN, 0, __pyx_mstate_global->__pyx_n_u_ATAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[22])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 503, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 4024, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + + __pyx_t_10 = PyTuple_Pack(1, __pyx_t_5); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 4022, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_261LINEARREG_INTERCEPT, 0, __pyx_mstate_global->__pyx_n_u_LINEARREG_INTERCEPT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[132])); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 4022, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ATAN, __pyx_t_2) < (0)) __PYX_ERR(4, 503, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_LINEARREG_INTERCEPT, __pyx_t_5) < (0)) __PYX_ERR(4, 4022, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 4055, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + + __pyx_t_10 = PyTuple_Pack(1, __pyx_t_5); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 4053, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_263LINEARREG_SLOPE, 0, __pyx_mstate_global->__pyx_n_u_LINEARREG_SLOPE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[133])); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 4053, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_LINEARREG_SLOPE, __pyx_t_5) < (0)) __PYX_ERR(4, 4053, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_265LN, 0, __pyx_mstate_global->__pyx_n_u_LN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[134])); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 4084, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_LN, __pyx_t_5) < (0)) __PYX_ERR(4, 4084, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_267LOG10, 0, __pyx_mstate_global->__pyx_n_u_LOG10, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[135])); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 4113, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_LOG10, __pyx_t_5) < (0)) __PYX_ERR(4, 4113, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 4144, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_10 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 4144, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + + __pyx_t_11 = PyTuple_Pack(2, __pyx_t_5, __pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 4142, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_269MA, 0, __pyx_mstate_global->__pyx_n_u_MA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[136])); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 4142, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_10); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_t_11); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MA, __pyx_t_10) < (0)) __PYX_ERR(4, 4142, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + + __pyx_t_10 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 4176, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 4176, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 4176, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + + __pyx_t_3 = PyTuple_Pack(3, __pyx_t_10, __pyx_t_11, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4174, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_271MACD, 0, __pyx_mstate_global->__pyx_n_u_MACD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[137])); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 4174, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MACD, __pyx_t_5) < (0)) __PYX_ERR(4, 4174, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 534, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 4215, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4215, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 4215, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __pyx_t_10 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 4215, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4215, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_2 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_15 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 532, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); + __pyx_t_9 = PyTuple_Pack(6, __pyx_t_5, __pyx_t_3, __pyx_t_11, __pyx_t_10, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4213, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_43ATR, 0, __pyx_mstate_global->__pyx_n_u_ATR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[23])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 532, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_273MACDEXT, 0, __pyx_mstate_global->__pyx_n_u_MACDEXT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[138])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4213, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ATR, __pyx_t_2) < (0)) __PYX_ERR(4, 532, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_9); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MACDEXT, __pyx_t_2) < (0)) __PYX_ERR(4, 4213, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_45AVGPRICE, 0, __pyx_mstate_global->__pyx_n_u_AVGPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[24])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 565, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4257, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + __pyx_t_9 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4255, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_275MACDFIX, 0, __pyx_mstate_global->__pyx_n_u_MACDFIX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[139])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AVGPRICE, __pyx_t_2) < (0)) __PYX_ERR(4, 565, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_9); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MACDFIX, __pyx_t_2) < (0)) __PYX_ERR(4, 4255, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 599, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4294, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); + __pyx_t_9 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4294, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); - __pyx_t_15 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 597, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); + __pyx_t_4 = PyTuple_Pack(2, __pyx_t_2, __pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4292, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_47AVGDEV, 0, __pyx_mstate_global->__pyx_n_u_AVGDEV, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[25])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 597, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_277MAMA, 0, __pyx_mstate_global->__pyx_n_u_MAMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[140])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4292, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MAMA, __pyx_t_9) < (0)) __PYX_ERR(4, 4292, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_279MARKETFI, 0, __pyx_mstate_global->__pyx_n_u_MARKETFI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[141])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4327, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MARKETFI, __pyx_t_9) < (0)) __PYX_ERR(4, 4327, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4360, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4360, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + + __pyx_t_2 = PyTuple_Pack(2, __pyx_t_9, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4358, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_281MASSI, 0, __pyx_mstate_global->__pyx_n_u_MASSI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[142])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4358, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AVGDEV, __pyx_t_2) < (0)) __PYX_ERR(4, 597, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MASSI, __pyx_t_4) < (0)) __PYX_ERR(4, 4358, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 630, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_15 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 630, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __pyx_t_4 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 630, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4393, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 630, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4393, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_9 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4393, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); - __pyx_t_16 = PyTuple_Pack(4, __pyx_t_2, __pyx_t_15, __pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 628, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + __pyx_t_10 = PyTuple_Pack(3, __pyx_t_4, __pyx_t_2, __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 4391, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_49BBANDS, 0, __pyx_mstate_global->__pyx_n_u_BBANDS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[26])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 628, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_283MAVP, 0, __pyx_mstate_global->__pyx_n_u_MAVP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[143])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4391, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_16); - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_BBANDS, __pyx_t_3) < (0)) __PYX_ERR(4, 628, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MAVP, __pyx_t_9) < (0)) __PYX_ERR(4, 4391, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 670, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4428, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); - __pyx_t_16 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 668, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_51BETA, 0, __pyx_mstate_global->__pyx_n_u_BETA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[27])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 668, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_10 = PyTuple_Pack(1, __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 4426, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_285MAX, 0, __pyx_mstate_global->__pyx_n_u_MAX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[144])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4426, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_16); - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_BETA, __pyx_t_3) < (0)) __PYX_ERR(4, 668, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MAX, __pyx_t_9) < (0)) __PYX_ERR(4, 4426, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_53BOP, 0, __pyx_mstate_global->__pyx_n_u_BOP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[28])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 701, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4459, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + + __pyx_t_10 = PyTuple_Pack(1, __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 4457, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_287MAXINDEX, 0, __pyx_mstate_global->__pyx_n_u_MAXINDEX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[145])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4457, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_BOP, __pyx_t_3) < (0)) __PYX_ERR(4, 701, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 735, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MAXINDEX, __pyx_t_9) < (0)) __PYX_ERR(4, 4457, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_16 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 733, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_55CCI, 0, __pyx_mstate_global->__pyx_n_u_CCI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[29])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 733, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_289MEDPRICE, 0, __pyx_mstate_global->__pyx_n_u_MEDPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[146])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4491, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_16); - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CCI, __pyx_t_3) < (0)) __PYX_ERR(4, 733, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MEDPRICE, __pyx_t_9) < (0)) __PYX_ERR(4, 4491, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_57CDL2CROWS, 0, __pyx_mstate_global->__pyx_n_u_CDL2CROWS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[30])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 766, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4523, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + + __pyx_t_10 = PyTuple_Pack(1, __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 4521, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_291MFI, 0, __pyx_mstate_global->__pyx_n_u_MFI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[147])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4521, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL2CROWS, __pyx_t_3) < (0)) __PYX_ERR(4, 766, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MFI, __pyx_t_9) < (0)) __PYX_ERR(4, 4521, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_59CDL3BLACKCROWS, 0, __pyx_mstate_global->__pyx_n_u_CDL3BLACKCROWS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[31])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 798, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4557, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + + __pyx_t_10 = PyTuple_Pack(1, __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 4555, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_293MIDPOINT, 0, __pyx_mstate_global->__pyx_n_u_MIDPOINT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[148])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4555, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL3BLACKCROWS, __pyx_t_3) < (0)) __PYX_ERR(4, 798, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MIDPOINT, __pyx_t_9) < (0)) __PYX_ERR(4, 4555, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_61CDL3INSIDE, 0, __pyx_mstate_global->__pyx_n_u_CDL3INSIDE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[32])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 830, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4588, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + + __pyx_t_10 = PyTuple_Pack(1, __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 4586, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_295MIDPRICE, 0, __pyx_mstate_global->__pyx_n_u_MIDPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[149])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4586, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL3INSIDE, __pyx_t_3) < (0)) __PYX_ERR(4, 830, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MIDPRICE, __pyx_t_9) < (0)) __PYX_ERR(4, 4586, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4620, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_63CDL3LINESTRIKE, 0, __pyx_mstate_global->__pyx_n_u_CDL3LINESTRIKE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[33])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 862, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_10 = PyTuple_Pack(1, __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 4618, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_297MIN, 0, __pyx_mstate_global->__pyx_n_u_MIN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[150])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4618, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL3LINESTRIKE, __pyx_t_3) < (0)) __PYX_ERR(4, 862, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MIN, __pyx_t_9) < (0)) __PYX_ERR(4, 4618, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_65CDL3OUTSIDE, 0, __pyx_mstate_global->__pyx_n_u_CDL3OUTSIDE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[34])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 894, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4651, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + + __pyx_t_10 = PyTuple_Pack(1, __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 4649, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_299MININDEX, 0, __pyx_mstate_global->__pyx_n_u_MININDEX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[151])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4649, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL3OUTSIDE, __pyx_t_3) < (0)) __PYX_ERR(4, 894, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MININDEX, __pyx_t_9) < (0)) __PYX_ERR(4, 4649, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_67CDL3STARSINSOUTH, 0, __pyx_mstate_global->__pyx_n_u_CDL3STARSINSOUTH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[35])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 926, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4685, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + + __pyx_t_10 = PyTuple_Pack(1, __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 4683, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_301MINMAX, 0, __pyx_mstate_global->__pyx_n_u_MINMAX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[152])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4683, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL3STARSINSOUTH, __pyx_t_3) < (0)) __PYX_ERR(4, 926, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MINMAX, __pyx_t_9) < (0)) __PYX_ERR(4, 4683, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_69CDL3WHITESOLDIERS, 0, __pyx_mstate_global->__pyx_n_u_CDL3WHITESOLDIERS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[36])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 958, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4719, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + + __pyx_t_10 = PyTuple_Pack(1, __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 4717, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_303MINMAXINDEX, 0, __pyx_mstate_global->__pyx_n_u_MINMAXINDEX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[153])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4717, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL3WHITESOLDIERS, __pyx_t_3) < (0)) __PYX_ERR(4, 958, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MINMAXINDEX, __pyx_t_9) < (0)) __PYX_ERR(4, 4717, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_3 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 992, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4759, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); - __pyx_t_16 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 990, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_71CDLABANDONEDBABY, 0, __pyx_mstate_global->__pyx_n_u_CDLABANDONEDBABY, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[37])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 990, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_10 = PyTuple_Pack(1, __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 4757, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_305MINUS_DI, 0, __pyx_mstate_global->__pyx_n_u_MINUS_DI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[154])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4757, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_16); - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLABANDONEDBABY, __pyx_t_3) < (0)) __PYX_ERR(4, 990, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MINUS_DI, __pyx_t_9) < (0)) __PYX_ERR(4, 4757, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_73CDLADVANCEBLOCK, 0, __pyx_mstate_global->__pyx_n_u_CDLADVANCEBLOCK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[38])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1024, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4792, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + + __pyx_t_10 = PyTuple_Pack(1, __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 4790, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_307MINUS_DM, 0, __pyx_mstate_global->__pyx_n_u_MINUS_DM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[155])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4790, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLADVANCEBLOCK, __pyx_t_3) < (0)) __PYX_ERR(4, 1024, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MINUS_DM, __pyx_t_9) < (0)) __PYX_ERR(4, 4790, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_75CDLBELTHOLD, 0, __pyx_mstate_global->__pyx_n_u_CDLBELTHOLD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[39])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1056, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4824, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + + __pyx_t_10 = PyTuple_Pack(1, __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 4822, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_309MOM, 0, __pyx_mstate_global->__pyx_n_u_MOM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[156])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4822, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLBELTHOLD, __pyx_t_3) < (0)) __PYX_ERR(4, 1056, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MOM, __pyx_t_9) < (0)) __PYX_ERR(4, 4822, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_77CDLBREAKAWAY, 0, __pyx_mstate_global->__pyx_n_u_CDLBREAKAWAY, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[40])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1088, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_311MULT, 0, __pyx_mstate_global->__pyx_n_u_MULT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[157])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4853, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLBREAKAWAY, __pyx_t_3) < (0)) __PYX_ERR(4, 1088, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MULT, __pyx_t_9) < (0)) __PYX_ERR(4, 4853, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_79CDLCLOSINGMARUBOZU, 0, __pyx_mstate_global->__pyx_n_u_CDLCLOSINGMARUBOZU, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[41])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1120, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4886, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + + __pyx_t_10 = PyTuple_Pack(1, __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 4884, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_313NATR, 0, __pyx_mstate_global->__pyx_n_u_NATR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[158])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4884, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLCLOSINGMARUBOZU, __pyx_t_3) < (0)) __PYX_ERR(4, 1120, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_NATR, __pyx_t_9) < (0)) __PYX_ERR(4, 4884, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_81CDLCONCEALBABYSWALL, 0, __pyx_mstate_global->__pyx_n_u_CDLCONCEALBABYSWALL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[42])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1152, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_315NVI, 0, __pyx_mstate_global->__pyx_n_u_NVI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[159])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4917, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLCONCEALBABYSWALL, __pyx_t_3) < (0)) __PYX_ERR(4, 1152, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_NVI, __pyx_t_9) < (0)) __PYX_ERR(4, 4917, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_83CDLCOUNTERATTACK, 0, __pyx_mstate_global->__pyx_n_u_CDLCOUNTERATTACK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[43])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1184, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_317OBV, 0, __pyx_mstate_global->__pyx_n_u_OBV, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[160])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4947, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLCOUNTERATTACK, __pyx_t_3) < (0)) __PYX_ERR(4, 1184, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_OBV, __pyx_t_9) < (0)) __PYX_ERR(4, 4947, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_3 = PyFloat_FromDouble(((double)0.5)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1218, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4980, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_10 = PyFloat_FromDouble(((double)50.0)); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 4980, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); - __pyx_t_16 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 1216, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_85CDLDARKCLOUDCOVER, 0, __pyx_mstate_global->__pyx_n_u_CDLDARKCLOUDCOVER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[44])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1216, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = PyTuple_Pack(2, __pyx_t_9, __pyx_t_10); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4978, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_319PERCENTILE, 0, __pyx_mstate_global->__pyx_n_u_PERCENTILE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[161])); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 4978, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_10); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_16); - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLDARKCLOUDCOVER, __pyx_t_3) < (0)) __PYX_ERR(4, 1216, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PERCENTILE, __pyx_t_10) < (0)) __PYX_ERR(4, 4978, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_87CDLDOJI, 0, __pyx_mstate_global->__pyx_n_u_CDLDOJI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[45])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1250, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLDOJI, __pyx_t_3) < (0)) __PYX_ERR(4, 1250, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_10 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 5012, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_89CDLDOJISTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLDOJISTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[46])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1282, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = PyTuple_Pack(1, __pyx_t_10); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 5010, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_321PERCENTRANK, 0, __pyx_mstate_global->__pyx_n_u_PERCENTRANK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[162])); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 5010, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_10); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLDOJISTAR, __pyx_t_3) < (0)) __PYX_ERR(4, 1282, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PERCENTRANK, __pyx_t_10) < (0)) __PYX_ERR(4, 5010, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_91CDLDRAGONFLYDOJI, 0, __pyx_mstate_global->__pyx_n_u_CDLDRAGONFLYDOJI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[47])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1314, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLDRAGONFLYDOJI, __pyx_t_3) < (0)) __PYX_ERR(4, 1314, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_10 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 5043, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_93CDLENGULFING, 0, __pyx_mstate_global->__pyx_n_u_CDLENGULFING, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[48])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1346, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = PyTuple_Pack(1, __pyx_t_10); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 5041, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_323PLUS_DI, 0, __pyx_mstate_global->__pyx_n_u_PLUS_DI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[163])); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 5041, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_10); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLENGULFING, __pyx_t_3) < (0)) __PYX_ERR(4, 1346, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PLUS_DI, __pyx_t_10) < (0)) __PYX_ERR(4, 5041, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_3 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1380, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_10 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 5076, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); - __pyx_t_16 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 1378, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_95CDLEVENINGDOJISTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLEVENINGDOJISTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[49])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1378, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = PyTuple_Pack(1, __pyx_t_10); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 5074, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_325PLUS_DM, 0, __pyx_mstate_global->__pyx_n_u_PLUS_DM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[164])); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 5074, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_10); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_16); - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLEVENINGDOJISTAR, __pyx_t_3) < (0)) __PYX_ERR(4, 1378, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PLUS_DM, __pyx_t_10) < (0)) __PYX_ERR(4, 5074, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_3 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1414, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_10 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 5108, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 5108, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_9 = __Pyx_PyLong_From_int(((int)1)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 5108, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); - __pyx_t_16 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 1412, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_97CDLEVENINGSTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLEVENINGSTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[50])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1412, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_Pack(3, __pyx_t_10, __pyx_t_2, __pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5106, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_327PPO, 0, __pyx_mstate_global->__pyx_n_u_PPO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[165])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 5106, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_16); - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLEVENINGSTAR, __pyx_t_3) < (0)) __PYX_ERR(4, 1412, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PPO, __pyx_t_9) < (0)) __PYX_ERR(4, 5106, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_99CDLGAPSIDESIDEWHITE, 0, __pyx_mstate_global->__pyx_n_u_CDLGAPSIDESIDEWHITE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[51])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1446, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_329PVI, 0, __pyx_mstate_global->__pyx_n_u_PVI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[166])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 5139, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLGAPSIDESIDEWHITE, __pyx_t_3) < (0)) __PYX_ERR(4, 1446, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PVI, __pyx_t_9) < (0)) __PYX_ERR(4, 5139, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_101CDLGRAVESTONEDOJI, 0, __pyx_mstate_global->__pyx_n_u_CDLGRAVESTONEDOJI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[52])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1478, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 5171, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5171, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_2 = __Pyx_PyLong_From_int(((int)1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 5171, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + __pyx_t_10 = PyTuple_Pack(3, __pyx_t_9, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 5169, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_331PVO, 0, __pyx_mstate_global->__pyx_n_u_PVO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[167])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 5169, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLGRAVESTONEDOJI, __pyx_t_3) < (0)) __PYX_ERR(4, 1478, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PVO, __pyx_t_2) < (0)) __PYX_ERR(4, 5169, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_103CDLHAMMER, 0, __pyx_mstate_global->__pyx_n_u_CDLHAMMER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[53])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1510, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_333PVT, 0, __pyx_mstate_global->__pyx_n_u_PVT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[168])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 5202, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHAMMER, __pyx_t_3) < (0)) __PYX_ERR(4, 1510, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PVT, __pyx_t_2) < (0)) __PYX_ERR(4, 5202, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_105CDLHANGINGMAN, 0, __pyx_mstate_global->__pyx_n_u_CDLHANGINGMAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[54])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1542, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 5234, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + __pyx_t_10 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 5232, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_335QSTICK, 0, __pyx_mstate_global->__pyx_n_u_QSTICK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[169])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 5232, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHANGINGMAN, __pyx_t_3) < (0)) __PYX_ERR(4, 1542, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_QSTICK, __pyx_t_2) < (0)) __PYX_ERR(4, 5232, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_107CDLHARAMI, 0, __pyx_mstate_global->__pyx_n_u_CDLHARAMI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[55])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1574, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 5266, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + __pyx_t_10 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 5264, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_337RMA, 0, __pyx_mstate_global->__pyx_n_u_RMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[170])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 5264, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHARAMI, __pyx_t_3) < (0)) __PYX_ERR(4, 1574, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_RMA, __pyx_t_2) < (0)) __PYX_ERR(4, 5264, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_109CDLHARAMICROSS, 0, __pyx_mstate_global->__pyx_n_u_CDLHARAMICROSS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[56])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1606, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 5297, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + __pyx_t_10 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 5295, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_339ROC, 0, __pyx_mstate_global->__pyx_n_u_ROC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[171])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 5295, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHARAMICROSS, __pyx_t_3) < (0)) __PYX_ERR(4, 1606, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ROC, __pyx_t_2) < (0)) __PYX_ERR(4, 5295, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_111CDLHIGHWAVE, 0, __pyx_mstate_global->__pyx_n_u_CDLHIGHWAVE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[57])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1638, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 5328, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + __pyx_t_10 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 5326, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_341ROCP, 0, __pyx_mstate_global->__pyx_n_u_ROCP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[172])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 5326, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHIGHWAVE, __pyx_t_3) < (0)) __PYX_ERR(4, 1638, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ROCP, __pyx_t_2) < (0)) __PYX_ERR(4, 5326, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_113CDLHIKKAKE, 0, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[58])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1670, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 5359, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + __pyx_t_10 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 5357, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_343ROCR, 0, __pyx_mstate_global->__pyx_n_u_ROCR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[173])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 5357, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKE, __pyx_t_3) < (0)) __PYX_ERR(4, 1670, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ROCR, __pyx_t_2) < (0)) __PYX_ERR(4, 5357, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_115CDLHIKKAKEMOD, 0, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKEMOD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[59])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1702, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 5390, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + __pyx_t_10 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 5388, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_345ROCR100, 0, __pyx_mstate_global->__pyx_n_u_ROCR100, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[174])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 5388, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKEMOD, __pyx_t_3) < (0)) __PYX_ERR(4, 1702, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ROCR100, __pyx_t_2) < (0)) __PYX_ERR(4, 5388, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_117CDLHOMINGPIGEON, 0, __pyx_mstate_global->__pyx_n_u_CDLHOMINGPIGEON, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[60])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1734, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 5421, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + __pyx_t_10 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 5419, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_347RSI, 0, __pyx_mstate_global->__pyx_n_u_RSI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[175])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 5419, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHOMINGPIGEON, __pyx_t_3) < (0)) __PYX_ERR(4, 1734, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_RSI, __pyx_t_2) < (0)) __PYX_ERR(4, 5419, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_119CDLIDENTICAL3CROWS, 0, __pyx_mstate_global->__pyx_n_u_CDLIDENTICAL3CROWS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[61])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1766, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 5452, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_10 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 5452, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + + __pyx_t_4 = PyTuple_Pack(2, __pyx_t_2, __pyx_t_10); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5450, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_349RVI, 0, __pyx_mstate_global->__pyx_n_u_RVI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[176])); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 5450, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_10); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLIDENTICAL3CROWS, __pyx_t_3) < (0)) __PYX_ERR(4, 1766, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_RVI, __pyx_t_10) < (0)) __PYX_ERR(4, 5450, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_121CDLINNECK, 0, __pyx_mstate_global->__pyx_n_u_CDLINNECK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[62])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1798, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_10 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 5484, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + + __pyx_t_4 = PyTuple_Pack(1, __pyx_t_10); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5482, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_351RVOL, 0, __pyx_mstate_global->__pyx_n_u_RVOL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[177])); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 5482, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_10); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLINNECK, __pyx_t_3) < (0)) __PYX_ERR(4, 1798, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_RVOL, __pyx_t_10) < (0)) __PYX_ERR(4, 5482, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_123CDLINVERTEDHAMMER, 0, __pyx_mstate_global->__pyx_n_u_CDLINVERTEDHAMMER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[63])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1830, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_10 = PyFloat_FromDouble(((double)0.02)); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 5515, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __pyx_t_4 = PyFloat_FromDouble(((double)0.2)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5515, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + + __pyx_t_2 = PyTuple_Pack(2, __pyx_t_10, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 5513, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_353SAR, 0, __pyx_mstate_global->__pyx_n_u_SAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[178])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5513, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLINVERTEDHAMMER, __pyx_t_3) < (0)) __PYX_ERR(4, 1830, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SAR, __pyx_t_4) < (0)) __PYX_ERR(4, 5513, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_125CDLKICKING, 0, __pyx_mstate_global->__pyx_n_u_CDLKICKING, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[64])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1862, __pyx_L1_error) + __pyx_t_4 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5548, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_2 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 5548, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_10 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 5548, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __pyx_t_9 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 5548, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_11 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 5548, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __pyx_t_3 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 5548, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 5548, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_12 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_12)) __PYX_ERR(4, 5548, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + + __pyx_t_13 = PyTuple_Pack(8, __pyx_t_4, __pyx_t_2, __pyx_t_10, __pyx_t_9, __pyx_t_11, __pyx_t_3, __pyx_t_5, __pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(4, 5546, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_355SAREXT, 0, __pyx_mstate_global->__pyx_n_u_SAREXT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[179])); if (unlikely(!__pyx_t_12)) __PYX_ERR(4, 5546, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLKICKING, __pyx_t_3) < (0)) __PYX_ERR(4, 1862, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_13); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SAREXT, __pyx_t_12) < (0)) __PYX_ERR(4, 5546, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_127CDLKICKINGBYLENGTH, 0, __pyx_mstate_global->__pyx_n_u_CDLKICKINGBYLENGTH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[65])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1894, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_357SIN, 0, __pyx_mstate_global->__pyx_n_u_SIN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[180])); if (unlikely(!__pyx_t_12)) __PYX_ERR(4, 5585, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLKICKINGBYLENGTH, __pyx_t_3) < (0)) __PYX_ERR(4, 1894, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SIN, __pyx_t_12) < (0)) __PYX_ERR(4, 5585, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_129CDLLADDERBOTTOM, 0, __pyx_mstate_global->__pyx_n_u_CDLLADDERBOTTOM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[66])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1926, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_359SINH, 0, __pyx_mstate_global->__pyx_n_u_SINH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[181])); if (unlikely(!__pyx_t_12)) __PYX_ERR(4, 5614, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLLADDERBOTTOM, __pyx_t_3) < (0)) __PYX_ERR(4, 1926, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SINH, __pyx_t_12) < (0)) __PYX_ERR(4, 5614, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_131CDLLONGLEGGEDDOJI, 0, __pyx_mstate_global->__pyx_n_u_CDLLONGLEGGEDDOJI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[67])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1958, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(4, 5645, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + + __pyx_t_13 = PyTuple_Pack(1, __pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(4, 5643, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_361SMA, 0, __pyx_mstate_global->__pyx_n_u_SMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[182])); if (unlikely(!__pyx_t_12)) __PYX_ERR(4, 5643, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLLONGLEGGEDDOJI, __pyx_t_3) < (0)) __PYX_ERR(4, 1958, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_13); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SMA, __pyx_t_12) < (0)) __PYX_ERR(4, 5643, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_133CDLLONGLINE, 0, __pyx_mstate_global->__pyx_n_u_CDLLONGLINE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[68])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1990, __pyx_L1_error) + __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(4, 5676, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(4, 5676, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 5676, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 5676, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLLONGLINE, __pyx_t_3) < (0)) __PYX_ERR(4, 1990, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_135CDLMARUBOZU, 0, __pyx_mstate_global->__pyx_n_u_CDLMARUBOZU, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[69])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2022, __pyx_L1_error) + __pyx_t_11 = PyTuple_Pack(4, __pyx_t_12, __pyx_t_13, __pyx_t_5, __pyx_t_3); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 5674, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_363SMI, 0, __pyx_mstate_global->__pyx_n_u_SMI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[183])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 5674, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLMARUBOZU, __pyx_t_3) < (0)) __PYX_ERR(4, 2022, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_11); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SMI, __pyx_t_3) < (0)) __PYX_ERR(4, 5674, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_137CDLMATCHINGLOW, 0, __pyx_mstate_global->__pyx_n_u_CDLMATCHINGLOW, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[70])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2054, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_365SQRT, 0, __pyx_mstate_global->__pyx_n_u_SQRT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[184])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 5713, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLMATCHINGLOW, __pyx_t_3) < (0)) __PYX_ERR(4, 2054, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SQRT, __pyx_t_3) < (0)) __PYX_ERR(4, 5713, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = PyFloat_FromDouble(((double)0.5)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2088, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 5744, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_11 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 5744, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); - __pyx_t_16 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 2086, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); + __pyx_t_5 = PyTuple_Pack(2, __pyx_t_3, __pyx_t_11); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 5742, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_139CDLMATHOLD, 0, __pyx_mstate_global->__pyx_n_u_CDLMATHOLD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[71])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2086, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_367STDDEV, 0, __pyx_mstate_global->__pyx_n_u_STDDEV, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[185])); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 5742, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_16); - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLMATHOLD, __pyx_t_3) < (0)) __PYX_ERR(4, 2086, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_11, __pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_STDDEV, __pyx_t_11) < (0)) __PYX_ERR(4, 5742, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_3 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2122, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 5776, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 5776, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 5776, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(4, 5776, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __pyx_t_12 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_12)) __PYX_ERR(4, 5776, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); - __pyx_t_16 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 2120, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); + __pyx_t_9 = PyTuple_Pack(5, __pyx_t_11, __pyx_t_5, __pyx_t_3, __pyx_t_13, __pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 5774, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_141CDLMORNINGDOJISTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLMORNINGDOJISTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[72])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2120, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_369STOCH, 0, __pyx_mstate_global->__pyx_n_u_STOCH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[186])); if (unlikely(!__pyx_t_12)) __PYX_ERR(4, 5774, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_16); - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLMORNINGDOJISTAR, __pyx_t_3) < (0)) __PYX_ERR(4, 2120, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_9); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_STOCH, __pyx_t_12) < (0)) __PYX_ERR(4, 5774, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_3 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2156, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(4, 5816, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 5816, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_13 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_13)) __PYX_ERR(4, 5816, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); - __pyx_t_16 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 2154, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_143CDLMORNINGSTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLMORNINGSTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[73])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2154, __pyx_L1_error) + __pyx_t_3 = PyTuple_Pack(3, __pyx_t_12, __pyx_t_9, __pyx_t_13); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 5814, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_371STOCHF, 0, __pyx_mstate_global->__pyx_n_u_STOCHF, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[187])); if (unlikely(!__pyx_t_13)) __PYX_ERR(4, 5814, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_16); - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLMORNINGSTAR, __pyx_t_3) < (0)) __PYX_ERR(4, 2154, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_STOCHF, __pyx_t_13) < (0)) __PYX_ERR(4, 5814, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_145CDLONNECK, 0, __pyx_mstate_global->__pyx_n_u_CDLONNECK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[74])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2188, __pyx_L1_error) + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(4, 5854, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 5854, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLONNECK, __pyx_t_3) < (0)) __PYX_ERR(4, 2188, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 5854, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_12 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_12)) __PYX_ERR(4, 5854, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_147CDLPIERCING, 0, __pyx_mstate_global->__pyx_n_u_CDLPIERCING, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[75])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2220, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLPIERCING, __pyx_t_3) < (0)) __PYX_ERR(4, 2220, __pyx_L1_error) + __pyx_t_5 = PyTuple_Pack(4, __pyx_t_13, __pyx_t_3, __pyx_t_9, __pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 5852, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_149CDLRICKSHAWMAN, 0, __pyx_mstate_global->__pyx_n_u_CDLRICKSHAWMAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[76])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2252, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_373STOCHRSI, 0, __pyx_mstate_global->__pyx_n_u_STOCHRSI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[188])); if (unlikely(!__pyx_t_12)) __PYX_ERR(4, 5852, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLRICKSHAWMAN, __pyx_t_3) < (0)) __PYX_ERR(4, 2252, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_STOCHRSI, __pyx_t_12) < (0)) __PYX_ERR(4, 5852, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_151CDLRISEFALL3METHODS, 0, __pyx_mstate_global->__pyx_n_u_CDLRISEFALL3METHODS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[77])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2284, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_375SUB, 0, __pyx_mstate_global->__pyx_n_u_SUB, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[189])); if (unlikely(!__pyx_t_12)) __PYX_ERR(4, 5889, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLRISEFALL3METHODS, __pyx_t_3) < (0)) __PYX_ERR(4, 2284, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SUB, __pyx_t_12) < (0)) __PYX_ERR(4, 5889, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_153CDLSEPARATINGLINES, 0, __pyx_mstate_global->__pyx_n_u_CDLSEPARATINGLINES, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[78])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2316, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLSEPARATINGLINES, __pyx_t_3) < (0)) __PYX_ERR(4, 2316, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(4, 5922, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_155CDLSHOOTINGSTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLSHOOTINGSTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[79])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2348, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = PyTuple_Pack(1, __pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 5920, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_377SUM, 0, __pyx_mstate_global->__pyx_n_u_SUM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[190])); if (unlikely(!__pyx_t_12)) __PYX_ERR(4, 5920, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLSHOOTINGSTAR, __pyx_t_3) < (0)) __PYX_ERR(4, 2348, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SUM, __pyx_t_12) < (0)) __PYX_ERR(4, 5920, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_157CDLSHORTLINE, 0, __pyx_mstate_global->__pyx_n_u_CDLSHORTLINE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[80])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2380, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLSHORTLINE, __pyx_t_3) < (0)) __PYX_ERR(4, 2380, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(4, 5953, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __pyx_t_5 = PyFloat_FromDouble(((double)3.0)); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 5953, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_159CDLSPINNINGTOP, 0, __pyx_mstate_global->__pyx_n_u_CDLSPINNINGTOP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[81])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2412, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_9 = PyTuple_Pack(2, __pyx_t_12, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 5951, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_379SUPERTREND, 0, __pyx_mstate_global->__pyx_n_u_SUPERTREND, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[191])); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 5951, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLSPINNINGTOP, __pyx_t_3) < (0)) __PYX_ERR(4, 2412, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_9); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SUPERTREND, __pyx_t_5) < (0)) __PYX_ERR(4, 5951, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_161CDLSTALLEDPATTERN, 0, __pyx_mstate_global->__pyx_n_u_CDLSTALLEDPATTERN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[82])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2444, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLSTALLEDPATTERN, __pyx_t_3) < (0)) __PYX_ERR(4, 2444, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 5990, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_9 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 5990, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_163CDLSTICKSANDWICH, 0, __pyx_mstate_global->__pyx_n_u_CDLSTICKSANDWICH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[83])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2476, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_12 = PyTuple_Pack(2, __pyx_t_5, __pyx_t_9); if (unlikely(!__pyx_t_12)) __PYX_ERR(4, 5988, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_381T3, 0, __pyx_mstate_global->__pyx_n_u_T3, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[192])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 5988, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLSTICKSANDWICH, __pyx_t_3) < (0)) __PYX_ERR(4, 2476, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_12); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_T3, __pyx_t_9) < (0)) __PYX_ERR(4, 5988, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_165CDLTAKURI, 0, __pyx_mstate_global->__pyx_n_u_CDLTAKURI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[84])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2508, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_383TAN, 0, __pyx_mstate_global->__pyx_n_u_TAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[193])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 6020, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLTAKURI, __pyx_t_3) < (0)) __PYX_ERR(4, 2508, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TAN, __pyx_t_9) < (0)) __PYX_ERR(4, 6020, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_167CDLTASUKIGAP, 0, __pyx_mstate_global->__pyx_n_u_CDLTASUKIGAP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[85])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2540, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_385TANH, 0, __pyx_mstate_global->__pyx_n_u_TANH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[194])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 6049, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLTASUKIGAP, __pyx_t_3) < (0)) __PYX_ERR(4, 2540, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TANH, __pyx_t_9) < (0)) __PYX_ERR(4, 6049, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_169CDLTHRUSTING, 0, __pyx_mstate_global->__pyx_n_u_CDLTHRUSTING, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[86])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2572, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLTHRUSTING, __pyx_t_3) < (0)) __PYX_ERR(4, 2572, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 6080, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_171CDLTRISTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLTRISTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[87])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2604, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_12 = PyTuple_Pack(1, __pyx_t_9); if (unlikely(!__pyx_t_12)) __PYX_ERR(4, 6078, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_387TEMA, 0, __pyx_mstate_global->__pyx_n_u_TEMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[195])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 6078, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLTRISTAR, __pyx_t_3) < (0)) __PYX_ERR(4, 2604, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_12); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TEMA, __pyx_t_9) < (0)) __PYX_ERR(4, 6078, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_173CDLUNIQUE3RIVER, 0, __pyx_mstate_global->__pyx_n_u_CDLUNIQUE3RIVER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[88])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2636, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_389TRANGE, 0, __pyx_mstate_global->__pyx_n_u_TRANGE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[196])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 6109, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLUNIQUE3RIVER, __pyx_t_3) < (0)) __PYX_ERR(4, 2636, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TRANGE, __pyx_t_9) < (0)) __PYX_ERR(4, 6109, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_175CDLUPSIDEGAP2CROWS, 0, __pyx_mstate_global->__pyx_n_u_CDLUPSIDEGAP2CROWS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[89])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2668, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLUPSIDEGAP2CROWS, __pyx_t_3) < (0)) __PYX_ERR(4, 2668, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 6142, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_177CDLXSIDEGAP3METHODS, 0, __pyx_mstate_global->__pyx_n_u_CDLXSIDEGAP3METHODS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[90])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2700, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_12 = PyTuple_Pack(1, __pyx_t_9); if (unlikely(!__pyx_t_12)) __PYX_ERR(4, 6140, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_391TRIMA, 0, __pyx_mstate_global->__pyx_n_u_TRIMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[197])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 6140, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLXSIDEGAP3METHODS, __pyx_t_3) < (0)) __PYX_ERR(4, 2700, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_12); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TRIMA, __pyx_t_9) < (0)) __PYX_ERR(4, 6140, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_179CEIL, 0, __pyx_mstate_global->__pyx_n_u_CEIL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[91])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2732, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 6173, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + + __pyx_t_12 = PyTuple_Pack(1, __pyx_t_9); if (unlikely(!__pyx_t_12)) __PYX_ERR(4, 6171, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_393TRIX, 0, __pyx_mstate_global->__pyx_n_u_TRIX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[198])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 6171, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CEIL, __pyx_t_3) < (0)) __PYX_ERR(4, 2732, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_12); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TRIX, __pyx_t_9) < (0)) __PYX_ERR(4, 6171, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2763, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 6204, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); - __pyx_t_16 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 2761, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_181CMO, 0, __pyx_mstate_global->__pyx_n_u_CMO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[92])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2761, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_12 = PyTuple_Pack(1, __pyx_t_9); if (unlikely(!__pyx_t_12)) __PYX_ERR(4, 6202, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_395TSF, 0, __pyx_mstate_global->__pyx_n_u_TSF, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[199])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 6202, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_16); - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CMO, __pyx_t_3) < (0)) __PYX_ERR(4, 2761, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_12); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TSF, __pyx_t_9) < (0)) __PYX_ERR(4, 6202, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2794, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 6235, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(4, 6235, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); - __pyx_t_16 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 2792, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_183CORREL, 0, __pyx_mstate_global->__pyx_n_u_CORREL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[93])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2792, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = PyTuple_Pack(2, __pyx_t_9, __pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 6233, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_397TSI, 0, __pyx_mstate_global->__pyx_n_u_TSI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[200])); if (unlikely(!__pyx_t_12)) __PYX_ERR(4, 6233, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_16); - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CORREL, __pyx_t_3) < (0)) __PYX_ERR(4, 2792, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TSI, __pyx_t_12) < (0)) __PYX_ERR(4, 6233, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_185COS, 0, __pyx_mstate_global->__pyx_n_u_COS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[94])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2825, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_399TYPPRICE, 0, __pyx_mstate_global->__pyx_n_u_TYPPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[201])); if (unlikely(!__pyx_t_12)) __PYX_ERR(4, 6265, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_COS, __pyx_t_3) < (0)) __PYX_ERR(4, 2825, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TYPPRICE, __pyx_t_12) < (0)) __PYX_ERR(4, 6265, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + + __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(4, 6298, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 6298, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 6298, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_187COSH, 0, __pyx_mstate_global->__pyx_n_u_COSH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[95])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2854, __pyx_L1_error) + __pyx_t_3 = PyTuple_Pack(3, __pyx_t_12, __pyx_t_5, __pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 6296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_401ULTOSC, 0, __pyx_mstate_global->__pyx_n_u_ULTOSC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[202])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 6296, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_COSH, __pyx_t_3) < (0)) __PYX_ERR(4, 2854, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ULTOSC, __pyx_t_9) < (0)) __PYX_ERR(4, 6296, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2885, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 6333, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_3 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 6333, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_16 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 2883, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_189DEMA, 0, __pyx_mstate_global->__pyx_n_u_DEMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[96])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2883, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); - #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_16); - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_DEMA, __pyx_t_3) < (0)) __PYX_ERR(4, 2883, __pyx_L1_error) + __pyx_t_5 = PyTuple_Pack(2, __pyx_t_9, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 6331, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_191DIV, 0, __pyx_mstate_global->__pyx_n_u_DIV, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[97])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2914, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_403VAR, 0, __pyx_mstate_global->__pyx_n_u_VAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[203])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 6331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_DIV, __pyx_t_3) < (0)) __PYX_ERR(4, 2914, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_VAR, __pyx_t_3) < (0)) __PYX_ERR(4, 6331, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2947, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 6365, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_16 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 2945, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); + __pyx_t_5 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 6363, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_193DX, 0, __pyx_mstate_global->__pyx_n_u_DX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[98])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2945, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_405VHF, 0, __pyx_mstate_global->__pyx_n_u_VHF, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[204])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 6363, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_16); - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_DX, __pyx_t_3) < (0)) __PYX_ERR(4, 2945, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_VHF, __pyx_t_3) < (0)) __PYX_ERR(4, 6363, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2980, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 6396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_16 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 2978, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); + __pyx_t_5 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 6394, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_195EMA, 0, __pyx_mstate_global->__pyx_n_u_EMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[99])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2978, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_407VORTEX, 0, __pyx_mstate_global->__pyx_n_u_VORTEX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[205])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 6394, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_16); - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_EMA, __pyx_t_3) < (0)) __PYX_ERR(4, 2978, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_VORTEX, __pyx_t_3) < (0)) __PYX_ERR(4, 6394, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_197EXP, 0, __pyx_mstate_global->__pyx_n_u_EXP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[100])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3009, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_409VWAP, 0, __pyx_mstate_global->__pyx_n_u_VWAP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[206])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 6430, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_EXP, __pyx_t_3) < (0)) __PYX_ERR(4, 3009, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_VWAP, __pyx_t_3) < (0)) __PYX_ERR(4, 6430, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_199FLOOR, 0, __pyx_mstate_global->__pyx_n_u_FLOOR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[101])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3038, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 6464, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_FLOOR, __pyx_t_3) < (0)) __PYX_ERR(4, 3038, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_201HT_DCPERIOD, 0, __pyx_mstate_global->__pyx_n_u_HT_DCPERIOD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[102])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3067, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_DCPERIOD, __pyx_t_3) < (0)) __PYX_ERR(4, 3067, __pyx_L1_error) + __pyx_t_5 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 6462, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_203HT_DCPHASE, 0, __pyx_mstate_global->__pyx_n_u_HT_DCPHASE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[103])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3096, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_411VWMA, 0, __pyx_mstate_global->__pyx_n_u_VWMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[207])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 6462, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_DCPHASE, __pyx_t_3) < (0)) __PYX_ERR(4, 3096, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_VWMA, __pyx_t_3) < (0)) __PYX_ERR(4, 6462, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_205HT_PHASOR, 0, __pyx_mstate_global->__pyx_n_u_HT_PHASOR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[104])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3125, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_413WAD, 0, __pyx_mstate_global->__pyx_n_u_WAD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[208])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 6495, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_PHASOR, __pyx_t_3) < (0)) __PYX_ERR(4, 3125, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_WAD, __pyx_t_3) < (0)) __PYX_ERR(4, 6495, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_207HT_SINE, 0, __pyx_mstate_global->__pyx_n_u_HT_SINE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[105])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3157, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_415WCLPRICE, 0, __pyx_mstate_global->__pyx_n_u_WCLPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[209])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 6526, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_SINE, __pyx_t_3) < (0)) __PYX_ERR(4, 3157, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_WCLPRICE, __pyx_t_3) < (0)) __PYX_ERR(4, 6526, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_209HT_TRENDLINE, 0, __pyx_mstate_global->__pyx_n_u_HT_TRENDLINE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[106])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3189, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 6559, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_TRENDLINE, __pyx_t_3) < (0)) __PYX_ERR(4, 3189, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_211HT_TRENDMODE, 0, __pyx_mstate_global->__pyx_n_u_HT_TRENDMODE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[107])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3218, __pyx_L1_error) + __pyx_t_5 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 6557, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_417WILLR, 0, __pyx_mstate_global->__pyx_n_u_WILLR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[210])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 6557, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_TRENDMODE, __pyx_t_3) < (0)) __PYX_ERR(4, 3218, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_WILLR, __pyx_t_3) < (0)) __PYX_ERR(4, 6557, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3249, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 6592, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_16 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 3247, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); + __pyx_t_5 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 6590, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_213IMI, 0, __pyx_mstate_global->__pyx_n_u_IMI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[108])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3247, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_419WMA, 0, __pyx_mstate_global->__pyx_n_u_WMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[211])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 6590, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_16); - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_IMI, __pyx_t_3) < (0)) __PYX_ERR(4, 3247, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_WMA, __pyx_t_3) < (0)) __PYX_ERR(4, 6590, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3281, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 6623, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_16 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 3279, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); + __pyx_t_5 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 6621, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_215KAMA, 0, __pyx_mstate_global->__pyx_n_u_KAMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[109])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3279, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_421ZLEMA, 0, __pyx_mstate_global->__pyx_n_u_ZLEMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[212])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 6621, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_16); - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_KAMA, __pyx_t_3) < (0)) __PYX_ERR(4, 3279, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ZLEMA, __pyx_t_3) < (0)) __PYX_ERR(4, 6621, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3312, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyList_Pack(201, __pyx_mstate_global->__pyx_n_u_AC, __pyx_mstate_global->__pyx_n_u_ACCBANDS, __pyx_mstate_global->__pyx_n_u_ACOS, __pyx_mstate_global->__pyx_n_u_AD, __pyx_mstate_global->__pyx_n_u_ADD, __pyx_mstate_global->__pyx_n_u_ADOSC, __pyx_mstate_global->__pyx_n_u_ADR, __pyx_mstate_global->__pyx_n_u_ADX, __pyx_mstate_global->__pyx_n_u_ADXR, __pyx_mstate_global->__pyx_n_u_AO, __pyx_mstate_global->__pyx_n_u_APO, __pyx_mstate_global->__pyx_n_u_AROON, __pyx_mstate_global->__pyx_n_u_AROONOSC, __pyx_mstate_global->__pyx_n_u_ASIN, __pyx_mstate_global->__pyx_n_u_ATAN, __pyx_mstate_global->__pyx_n_u_ATR, __pyx_mstate_global->__pyx_n_u_AVGDEV, __pyx_mstate_global->__pyx_n_u_AVGPRICE, __pyx_mstate_global->__pyx_n_u_BBANDS, __pyx_mstate_global->__pyx_n_u_BETA, __pyx_mstate_global->__pyx_n_u_BOP, __pyx_mstate_global->__pyx_n_u_CCI, __pyx_mstate_global->__pyx_n_u_CDL2CROWS, __pyx_mstate_global->__pyx_n_u_CDL3BLACKCROWS, __pyx_mstate_global->__pyx_n_u_CDL3INSIDE, __pyx_mstate_global->__pyx_n_u_CDL3LINESTRIKE, __pyx_mstate_global->__pyx_n_u_CDL3OUTSIDE, __pyx_mstate_global->__pyx_n_u_CDL3STARSINSOUTH, __pyx_mstate_global->__pyx_n_u_CDL3WHITESOLDIERS, __pyx_mstate_global->__pyx_n_u_CDLABANDONEDBABY, __pyx_mstate_global->__pyx_n_u_CDLADVANCEBLOCK, __pyx_mstate_global->__pyx_n_u_CDLBELTHOLD, __pyx_mstate_global->__pyx_n_u_CDLBREAKAWAY, __pyx_mstate_global->__pyx_n_u_CDLCLOSINGMARUBOZU, __pyx_mstate_global->__pyx_n_u_CDLCONCEALBABYSWALL, __pyx_mstate_global->__pyx_n_u_CDLCOUNTERATTACK, __pyx_mstate_global->__pyx_n_u_CDLDARKCLOUDCOVER, __pyx_mstate_global->__pyx_n_u_CDLDOJI, __pyx_mstate_global->__pyx_n_u_CDLDOJISTAR, __pyx_mstate_global->__pyx_n_u_CDLDRAGONFLYDOJI, __pyx_mstate_global->__pyx_n_u_CDLENGULFING, __pyx_mstate_global->__pyx_n_u_CDLEVENINGDOJISTAR, __pyx_mstate_global->__pyx_n_u_CDLEVENINGSTAR, __pyx_mstate_global->__pyx_n_u_CDLGAPSIDESIDEWHITE, __pyx_mstate_global->__pyx_n_u_CDLGRAVESTONEDOJI, __pyx_mstate_global->__pyx_n_u_CDLHAMMER, __pyx_mstate_global->__pyx_n_u_CDLHANGINGMAN, __pyx_mstate_global->__pyx_n_u_CDLHARAMI, __pyx_mstate_global->__pyx_n_u_CDLHARAMICROSS, __pyx_mstate_global->__pyx_n_u_CDLHIGHWAVE, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKE, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKEMOD, __pyx_mstate_global->__pyx_n_u_CDLHOMINGPIGEON, __pyx_mstate_global->__pyx_n_u_CDLIDENTICAL3CROWS, __pyx_mstate_global->__pyx_n_u_CDLINNECK, __pyx_mstate_global->__pyx_n_u_CDLINVERTEDHAMMER, __pyx_mstate_global->__pyx_n_u_CDLKICKING, __pyx_mstate_global->__pyx_n_u_CDLKICKINGBYLENGTH, __pyx_mstate_global->__pyx_n_u_CDLLADDERBOTTOM, __pyx_mstate_global->__pyx_n_u_CDLLONGLEGGEDDOJI, __pyx_mstate_global->__pyx_n_u_CDLLONGLINE, __pyx_mstate_global->__pyx_n_u_CDLMARUBOZU, __pyx_mstate_global->__pyx_n_u_CDLMATCHINGLOW, __pyx_mstate_global->__pyx_n_u_CDLMATHOLD, __pyx_mstate_global->__pyx_n_u_CDLMORNINGDOJISTAR, __pyx_mstate_global->__pyx_n_u_CDLMORNINGSTAR, __pyx_mstate_global->__pyx_n_u_CDLONNECK, __pyx_mstate_global->__pyx_n_u_CDLPIERCING, __pyx_mstate_global->__pyx_n_u_CDLRICKSHAWMAN, __pyx_mstate_global->__pyx_n_u_CDLRISEFALL3METHODS, __pyx_mstate_global->__pyx_n_u_CDLSEPARATINGLINES, __pyx_mstate_global->__pyx_n_u_CDLSHOOTINGSTAR, __pyx_mstate_global->__pyx_n_u_CDLSHORTLINE, __pyx_mstate_global->__pyx_n_u_CDLSPINNINGTOP, __pyx_mstate_global->__pyx_n_u_CDLSTALLEDPATTERN, __pyx_mstate_global->__pyx_n_u_CDLSTICKSANDWICH, __pyx_mstate_global->__pyx_n_u_CDLTAKURI, __pyx_mstate_global->__pyx_n_u_CDLTASUKIGAP, __pyx_mstate_global->__pyx_n_u_CDLTHRUSTING, __pyx_mstate_global->__pyx_n_u_CDLTRISTAR, __pyx_mstate_global->__pyx_n_u_CDLUNIQUE3RIVER, __pyx_mstate_global->__pyx_n_u_CDLUPSIDEGAP2CROWS, __pyx_mstate_global->__pyx_n_u_CDLXSIDEGAP3METHODS, __pyx_mstate_global->__pyx_n_u_CEIL, __pyx_mstate_global->__pyx_n_u_CMF, __pyx_mstate_global->__pyx_n_u_CMO, __pyx_mstate_global->__pyx_n_u_CMOU, __pyx_mstate_global->__pyx_n_u_COPPOCK, __pyx_mstate_global->__pyx_n_u_CORREL, __pyx_mstate_global->__pyx_n_u_COS, __pyx_mstate_global->__pyx_n_u_COSH, __pyx_mstate_global->__pyx_n_u_CUMSUM, __pyx_mstate_global->__pyx_n_u_CVI, __pyx_mstate_global->__pyx_n_u_DEMA, __pyx_mstate_global->__pyx_n_u_DIV, __pyx_mstate_global->__pyx_n_u_DONCHIAN, __pyx_mstate_global->__pyx_n_u_DPO, __pyx_mstate_global->__pyx_n_u_DX, __pyx_mstate_global->__pyx_n_u_EFI, __pyx_mstate_global->__pyx_n_u_EMA, __pyx_mstate_global->__pyx_n_u_ER, __pyx_mstate_global->__pyx_n_u_ERI, __pyx_mstate_global->__pyx_n_u_EXP, __pyx_mstate_global->__pyx_n_u_FLOOR, __pyx_mstate_global->__pyx_n_u_FOSC, __pyx_mstate_global->__pyx_n_u_FRACTAL, __pyx_mstate_global->__pyx_n_u_HA, __pyx_mstate_global->__pyx_n_u_HMA, __pyx_mstate_global->__pyx_n_u_HT_DCPERIOD, __pyx_mstate_global->__pyx_n_u_HT_DCPHASE, __pyx_mstate_global->__pyx_n_u_HT_PHASOR, __pyx_mstate_global->__pyx_n_u_HT_SINE, __pyx_mstate_global->__pyx_n_u_HT_TRENDLINE, __pyx_mstate_global->__pyx_n_u_HT_TRENDMODE, __pyx_mstate_global->__pyx_n_u_IMI, __pyx_mstate_global->__pyx_n_u_KAMA, __pyx_mstate_global->__pyx_n_u_KC, __pyx_mstate_global->__pyx_n_u_KDJ, __pyx_mstate_global->__pyx_n_u_LINEARREG, __pyx_mstate_global->__pyx_n_u_LINEARREG_ANGLE, __pyx_mstate_global->__pyx_n_u_LINEARREG_INTERCEPT, __pyx_mstate_global->__pyx_n_u_LINEARREG_SLOPE, __pyx_mstate_global->__pyx_n_u_LN, __pyx_mstate_global->__pyx_n_u_LOG10, __pyx_mstate_global->__pyx_n_u_MA, __pyx_mstate_global->__pyx_n_u_MACD, __pyx_mstate_global->__pyx_n_u_MACDEXT, __pyx_mstate_global->__pyx_n_u_MACDFIX, __pyx_mstate_global->__pyx_n_u_MAMA, __pyx_mstate_global->__pyx_n_u_MARKETFI, __pyx_mstate_global->__pyx_n_u_MASSI, __pyx_mstate_global->__pyx_n_u_MAVP, __pyx_mstate_global->__pyx_n_u_MAX, __pyx_mstate_global->__pyx_n_u_MAXINDEX, __pyx_mstate_global->__pyx_n_u_MEDPRICE, __pyx_mstate_global->__pyx_n_u_MFI, __pyx_mstate_global->__pyx_n_u_MIDPOINT, __pyx_mstate_global->__pyx_n_u_MIDPRICE, __pyx_mstate_global->__pyx_n_u_MIN, __pyx_mstate_global->__pyx_n_u_MININDEX, __pyx_mstate_global->__pyx_n_u_MINMAX, __pyx_mstate_global->__pyx_n_u_MINMAXINDEX, __pyx_mstate_global->__pyx_n_u_MINUS_DI, __pyx_mstate_global->__pyx_n_u_MINUS_DM, __pyx_mstate_global->__pyx_n_u_MOM, __pyx_mstate_global->__pyx_n_u_MULT, __pyx_mstate_global->__pyx_n_u_NATR, __pyx_mstate_global->__pyx_n_u_NVI, __pyx_mstate_global->__pyx_n_u_OBV, __pyx_mstate_global->__pyx_n_u_PERCENTILE, __pyx_mstate_global->__pyx_n_u_PERCENTRANK, __pyx_mstate_global->__pyx_n_u_PLUS_DI, __pyx_mstate_global->__pyx_n_u_PLUS_DM, __pyx_mstate_global->__pyx_n_u_PPO, __pyx_mstate_global->__pyx_n_u_PVI, __pyx_mstate_global->__pyx_n_u_PVO, __pyx_mstate_global->__pyx_n_u_PVT, __pyx_mstate_global->__pyx_n_u_QSTICK, __pyx_mstate_global->__pyx_n_u_RMA, __pyx_mstate_global->__pyx_n_u_ROC, __pyx_mstate_global->__pyx_n_u_ROCP, __pyx_mstate_global->__pyx_n_u_ROCR, __pyx_mstate_global->__pyx_n_u_ROCR100, __pyx_mstate_global->__pyx_n_u_RSI, __pyx_mstate_global->__pyx_n_u_RVI, __pyx_mstate_global->__pyx_n_u_RVOL, __pyx_mstate_global->__pyx_n_u_SAR, __pyx_mstate_global->__pyx_n_u_SAREXT, __pyx_mstate_global->__pyx_n_u_SIN, __pyx_mstate_global->__pyx_n_u_SINH, __pyx_mstate_global->__pyx_n_u_SMA, __pyx_mstate_global->__pyx_n_u_SMI, __pyx_mstate_global->__pyx_n_u_SQRT, __pyx_mstate_global->__pyx_n_u_STDDEV, __pyx_mstate_global->__pyx_n_u_STOCH, __pyx_mstate_global->__pyx_n_u_STOCHF, __pyx_mstate_global->__pyx_n_u_STOCHRSI, __pyx_mstate_global->__pyx_n_u_SUB, __pyx_mstate_global->__pyx_n_u_SUM, __pyx_mstate_global->__pyx_n_u_SUPERTREND, __pyx_mstate_global->__pyx_n_u_T3, __pyx_mstate_global->__pyx_n_u_TAN, __pyx_mstate_global->__pyx_n_u_TANH, __pyx_mstate_global->__pyx_n_u_TEMA, __pyx_mstate_global->__pyx_n_u_TRANGE, __pyx_mstate_global->__pyx_n_u_TRIMA, __pyx_mstate_global->__pyx_n_u_TRIX, __pyx_mstate_global->__pyx_n_u_TSF, __pyx_mstate_global->__pyx_n_u_TSI, __pyx_mstate_global->__pyx_n_u_TYPPRICE, __pyx_mstate_global->__pyx_n_u_ULTOSC, __pyx_mstate_global->__pyx_n_u_VAR, __pyx_mstate_global->__pyx_n_u_VHF, __pyx_mstate_global->__pyx_n_u_VORTEX, __pyx_mstate_global->__pyx_n_u_VWAP, __pyx_mstate_global->__pyx_n_u_VWMA, __pyx_mstate_global->__pyx_n_u_WAD, __pyx_mstate_global->__pyx_n_u_WCLPRICE, __pyx_mstate_global->__pyx_n_u_WILLR, __pyx_mstate_global->__pyx_n_u_WMA, __pyx_mstate_global->__pyx_n_u_ZLEMA); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 6652, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - - __pyx_t_16 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 3310, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TA_FUNCTION_NAMES, __pyx_t_3) < (0)) __PYX_ERR(4, 6652, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_217LINEARREG, 0, __pyx_mstate_global->__pyx_n_u_LINEARREG, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[110])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3310, __pyx_L1_error) + + __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_threading, 0, 0, __pyx_mstate_global->__pyx_kp_u_talib_threading, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4, __pyx_L1_error) + __pyx_t_3 = __pyx_t_1; __Pyx_GOTREF(__pyx_t_3); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); - #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_16); - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_LINEARREG, __pyx_t_3) < (0)) __PYX_ERR(4, 3310, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_threading, __pyx_t_3) < (0)) __PYX_ERR(2, 4, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3343, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_26, &__pyx_t_27); + __Pyx_XGOTREF(__pyx_t_1); + __Pyx_XGOTREF(__pyx_t_26); + __Pyx_XGOTREF(__pyx_t_27); + /*try:*/ { - __pyx_t_16 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 3341, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_219LINEARREG_ANGLE, 0, __pyx_mstate_global->__pyx_n_u_LINEARREG_ANGLE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[111])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3341, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); - #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_16); - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_LINEARREG_ANGLE, __pyx_t_3) < (0)) __PYX_ERR(4, 3341, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + { + PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_OrderedDict}; + __pyx_t_28 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_collections, __pyx_imported_names, 1, __pyx_mstate_global->__pyx_kp_u_talib_collections, -1); if (unlikely(!__pyx_t_28)) __PYX_ERR(2, 6, __pyx_L8_error) + } + __pyx_t_3 = __pyx_t_28; + __Pyx_GOTREF(__pyx_t_3); + { + PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_OrderedDict}; + __pyx_t_23 = 0; { + __pyx_t_5 = __Pyx_ImportFrom(__pyx_t_3, __pyx_imported_names[__pyx_t_23]); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 6, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_imported_names[__pyx_t_23], __pyx_t_5) < (0)) __PYX_ERR(2, 6, __pyx_L8_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3374, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + } + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_t_26); __pyx_t_26 = 0; + __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0; + goto __pyx_L13_try_end; + __pyx_L8_error:; + __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; + __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; + __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; + __Pyx_XDECREF(__pyx_t_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_19); __pyx_t_19 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; + __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_XDECREF(__pyx_t_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_8); __pyx_t_8 = 0; + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_16 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 3372, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_221LINEARREG_INTERCEPT, 0, __pyx_mstate_global->__pyx_n_u_LINEARREG_INTERCEPT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[112])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3372, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); - #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_16); - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_LINEARREG_INTERCEPT, __pyx_t_3) < (0)) __PYX_ERR(4, 3372, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_25 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ImportError)))); + if (__pyx_t_25) { + __Pyx_AddTraceback("talib._ta_lib", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_5, &__pyx_t_9) < 0) __PYX_ERR(2, 7, __pyx_L10_except_error) + __Pyx_XGOTREF(__pyx_t_3); + __Pyx_XGOTREF(__pyx_t_5); + __Pyx_XGOTREF(__pyx_t_9); - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3405, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + { + PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_OrderedDict}; + __pyx_t_28 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_ordereddict, __pyx_imported_names, 1, __pyx_mstate_global->__pyx_kp_u_talib_ordereddict, -1); if (unlikely(!__pyx_t_28)) __PYX_ERR(2, 8, __pyx_L10_except_error) + } + __pyx_t_12 = __pyx_t_28; + __Pyx_GOTREF(__pyx_t_12); + { + PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_OrderedDict}; + __pyx_t_23 = 0; { + __pyx_t_13 = __Pyx_ImportFrom(__pyx_t_12, __pyx_imported_names[__pyx_t_23]); if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 8, __pyx_L10_except_error) + __Pyx_GOTREF(__pyx_t_13); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_imported_names[__pyx_t_23], __pyx_t_13) < (0)) __PYX_ERR(2, 8, __pyx_L10_except_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + } + } + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + goto __pyx_L9_exception_handled; + } + goto __pyx_L10_except_error; - __pyx_t_16 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 3403, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_223LINEARREG_SLOPE, 0, __pyx_mstate_global->__pyx_n_u_LINEARREG_SLOPE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[113])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3403, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); - #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_16); - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_LINEARREG_SLOPE, __pyx_t_3) < (0)) __PYX_ERR(4, 3403, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_L10_except_error:; + __Pyx_XGIVEREF(__pyx_t_1); + __Pyx_XGIVEREF(__pyx_t_26); + __Pyx_XGIVEREF(__pyx_t_27); + __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_26, __pyx_t_27); + goto __pyx_L1_error; + __pyx_L9_exception_handled:; + __Pyx_XGIVEREF(__pyx_t_1); + __Pyx_XGIVEREF(__pyx_t_26); + __Pyx_XGIVEREF(__pyx_t_27); + __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_26, __pyx_t_27); + __pyx_L13_try_end:; + } - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_225LN, 0, __pyx_mstate_global->__pyx_n_u_LN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[114])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3434, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_LN, __pyx_t_3) < (0)) __PYX_ERR(4, 3434, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_27 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_numpy, 0, 0, __pyx_mstate_global->__pyx_kp_u_talib_numpy, -1); if (unlikely(!__pyx_t_27)) __PYX_ERR(2, 10, __pyx_L1_error) + __pyx_t_9 = __pyx_t_27; + __Pyx_GOTREF(__pyx_t_9); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_numpy, __pyx_t_9) < (0)) __PYX_ERR(2, 10, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_227LOG10, 0, __pyx_mstate_global->__pyx_n_u_LOG10, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[115])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3463, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_LOG10, __pyx_t_3) < (0)) __PYX_ERR(4, 3463, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_27 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_sys, 0, 0, __pyx_mstate_global->__pyx_kp_u_talib_sys, -1); if (unlikely(!__pyx_t_27)) __PYX_ERR(2, 11, __pyx_L1_error) + __pyx_t_9 = __pyx_t_27; + __Pyx_GOTREF(__pyx_t_9); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_sys, __pyx_t_9) < (0)) __PYX_ERR(2, 11, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3494, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_16 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 3494, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); + __pyx_t_25 = __pyx_f_5numpy_import_array(); if (unlikely(__pyx_t_25 == ((int)-1))) __PYX_ERR(2, 17, __pyx_L1_error) - __pyx_t_4 = PyTuple_Pack(2, __pyx_t_3, __pyx_t_16); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3492, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - __pyx_t_16 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_229MA, 0, __pyx_mstate_global->__pyx_n_u_MA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[116])); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 3492, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_16); - #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_16, __pyx_t_4); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MA, __pyx_t_16) < (0)) __PYX_ERR(4, 3492, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; + __pyx_t_9 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 20, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_price, __pyx_mstate_global->__pyx_n_u_close) < (0)) __PYX_ERR(2, 20, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_price0, __pyx_mstate_global->__pyx_n_u_high) < (0)) __PYX_ERR(2, 20, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_price1, __pyx_mstate_global->__pyx_n_u_low) < (0)) __PYX_ERR(2, 20, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_periods, __pyx_mstate_global->__pyx_n_u_periods) < (0)) __PYX_ERR(2, 20, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_INPUT_PRICE_SERIES_DEFAULTS, __pyx_t_9) < (0)) __PYX_ERR(2, 20, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_16 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 3526, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3526, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3526, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_9 = __Pyx_PyList_Pack(1, ((PyObject *)(&PyDict_Type))); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 26, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_INPUT_ARRAYS_TYPES, __pyx_t_9) < (0)) __PYX_ERR(2, 26, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_15 = PyTuple_Pack(3, __pyx_t_16, __pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 3524, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_231MACD, 0, __pyx_mstate_global->__pyx_n_u_MACD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[117])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3524, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); - #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MACD, __pyx_t_3) < (0)) __PYX_ERR(4, 3524, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_9 = __Pyx_PyList_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_5numpy_ndarray)); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 27, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ARRAY_TYPES, __pyx_t_9) < (0)) __PYX_ERR(2, 27, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3565, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_15 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 3565, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3565, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_16 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 3565, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3565, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_19 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 3565, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_27, &__pyx_t_26, &__pyx_t_1); + __Pyx_XGOTREF(__pyx_t_27); + __Pyx_XGOTREF(__pyx_t_26); + __Pyx_XGOTREF(__pyx_t_1); + /*try:*/ { - __pyx_t_20 = PyTuple_Pack(6, __pyx_t_3, __pyx_t_15, __pyx_t_4, __pyx_t_16, __pyx_t_2, __pyx_t_19); if (unlikely(!__pyx_t_20)) __PYX_ERR(4, 3563, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_20); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_233MACDEXT, 0, __pyx_mstate_global->__pyx_n_u_MACDEXT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[118])); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 3563, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); - #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_20); - __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MACDEXT, __pyx_t_19) < (0)) __PYX_ERR(4, 3563, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __pyx_t_28 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_pandas, 0, 0, __pyx_mstate_global->__pyx_kp_u_talib_pandas, -1); if (unlikely(!__pyx_t_28)) __PYX_ERR(2, 31, __pyx_L16_error) + __pyx_t_9 = __pyx_t_28; + __Pyx_GOTREF(__pyx_t_9); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pandas, __pyx_t_9) < (0)) __PYX_ERR(2, 31, __pyx_L16_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 3607, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 32, __pyx_L16_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_pandas); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 32, __pyx_L16_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_DataFrame); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 32, __pyx_L16_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_29 = __Pyx_PyObject_Append(__pyx_t_9, __pyx_t_3); if (unlikely(__pyx_t_29 == ((int)-1))) __PYX_ERR(2, 32, __pyx_L16_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_20 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_20)) __PYX_ERR(4, 3605, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_20); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_235MACDFIX, 0, __pyx_mstate_global->__pyx_n_u_MACDFIX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[119])); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 3605, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); - #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_20); - __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MACDFIX, __pyx_t_19) < (0)) __PYX_ERR(4, 3605, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_ARRAY_TYPES); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 33, __pyx_L16_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_pandas); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 33, __pyx_L16_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_Series); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 33, __pyx_L16_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_29 = __Pyx_PyObject_Append(__pyx_t_3, __pyx_t_5); if (unlikely(__pyx_t_29 == ((int)-1))) __PYX_ERR(2, 33, __pyx_L16_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_19 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 3644, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __pyx_t_20 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_20)) __PYX_ERR(4, 3644, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_20); + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_pandas); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 34, __pyx_L16_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_DataFrame); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 34, __pyx_L16_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PANDAS_DATAFRAME, __pyx_t_3) < (0)) __PYX_ERR(2, 34, __pyx_L16_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = PyTuple_Pack(2, __pyx_t_19, __pyx_t_20); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3642, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; - __pyx_t_20 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_237MAMA, 0, __pyx_mstate_global->__pyx_n_u_MAMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[120])); if (unlikely(!__pyx_t_20)) __PYX_ERR(4, 3642, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_20); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_20); - #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_20, __pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MAMA, __pyx_t_20) < (0)) __PYX_ERR(4, 3642, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_pandas); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 35, __pyx_L16_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_Series); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 35, __pyx_L16_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PANDAS_SERIES, __pyx_t_5) < (0)) __PYX_ERR(2, 35, __pyx_L16_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_20 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_20)) __PYX_ERR(4, 3679, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_20); - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3679, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_19 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 3679, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + } + __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0; + __Pyx_XDECREF(__pyx_t_26); __pyx_t_26 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + goto __pyx_L21_try_end; + __pyx_L16_error:; + __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; + __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; + __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; + __Pyx_XDECREF(__pyx_t_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_19); __pyx_t_19 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; + __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_XDECREF(__pyx_t_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_8); __pyx_t_8 = 0; + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_16 = PyTuple_Pack(3, __pyx_t_20, __pyx_t_2, __pyx_t_19); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 3677, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); - __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_239MAVP, 0, __pyx_mstate_global->__pyx_n_u_MAVP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[121])); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 3677, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); - #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_16); - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MAVP, __pyx_t_19) < (0)) __PYX_ERR(4, 3677, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __pyx_t_25 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ImportError)))); + if (__pyx_t_25) { + __Pyx_AddTraceback("talib._ta_lib", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_3, &__pyx_t_9) < 0) __PYX_ERR(2, 36, __pyx_L18_except_error) + __Pyx_XGOTREF(__pyx_t_5); + __Pyx_XGOTREF(__pyx_t_3); + __Pyx_XGOTREF(__pyx_t_9); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_import_error, __pyx_t_3) < (0)) __PYX_ERR(2, 36, __pyx_L18_except_error) - __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 3714, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_28, &__pyx_t_30, &__pyx_t_31); + __Pyx_XGOTREF(__pyx_t_28); + __Pyx_XGOTREF(__pyx_t_30); + __Pyx_XGOTREF(__pyx_t_31); + /*try:*/ { - __pyx_t_16 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 3712, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_241MAX, 0, __pyx_mstate_global->__pyx_n_u_MAX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[122])); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 3712, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); - #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_16); - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MAX, __pyx_t_19) < (0)) __PYX_ERR(4, 3712, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_import_error); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 38, __pyx_L24_error) + __Pyx_GOTREF(__pyx_t_12); + __pyx_t_33 = __Pyx_PyExc_ModuleNotFoundError_Check(__pyx_t_12); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __pyx_t_34 = (!__pyx_t_33); + if (!__pyx_t_34) { + } else { + __pyx_t_32 = __pyx_t_34; + goto __pyx_L33_bool_binop_done; + } + __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_import_error); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 38, __pyx_L24_error) + __Pyx_GOTREF(__pyx_t_12); + __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 38, __pyx_L24_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __pyx_t_34 = (__Pyx_PyUnicode_Equals(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_pandas, Py_NE)); if (unlikely((__pyx_t_34 < 0))) __PYX_ERR(2, 38, __pyx_L24_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_32 = __pyx_t_34; + __pyx_L33_bool_binop_done:; + if (unlikely(__pyx_t_32)) { + + __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_import_error); if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 40, __pyx_L24_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_Raise(__pyx_t_13, 0, 0, 0); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __PYX_ERR(2, 40, __pyx_L24_error) - __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 3745, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + } - __pyx_t_16 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 3743, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_243MAXINDEX, 0, __pyx_mstate_global->__pyx_n_u_MAXINDEX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[123])); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 3743, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); - #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_16); - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MAXINDEX, __pyx_t_19) < (0)) __PYX_ERR(4, 3743, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + } + __Pyx_XDECREF(__pyx_t_28); __pyx_t_28 = 0; + __Pyx_XDECREF(__pyx_t_30); __pyx_t_30 = 0; + __Pyx_XDECREF(__pyx_t_31); __pyx_t_31 = 0; + goto __pyx_L31_try_end; + __pyx_L24_error:; + __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; + __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; + __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; + __Pyx_XDECREF(__pyx_t_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_19); __pyx_t_19 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; + __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_245MEDPRICE, 0, __pyx_mstate_global->__pyx_n_u_MEDPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[124])); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 3777, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MEDPRICE, __pyx_t_19) < (0)) __PYX_ERR(4, 3777, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __pyx_t_25 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_NameError)))); + if (__pyx_t_25) { + __Pyx_ErrRestore(0,0,0); + goto __pyx_L25_exception_handled; + } + goto __pyx_L26_except_error; - __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 3809, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_L26_except_error:; + __Pyx_XGIVEREF(__pyx_t_28); + __Pyx_XGIVEREF(__pyx_t_30); + __Pyx_XGIVEREF(__pyx_t_31); + __Pyx_ExceptionReset(__pyx_t_28, __pyx_t_30, __pyx_t_31); + goto __pyx_L18_except_error; + __pyx_L25_exception_handled:; + __Pyx_XGIVEREF(__pyx_t_28); + __Pyx_XGIVEREF(__pyx_t_30); + __Pyx_XGIVEREF(__pyx_t_31); + __Pyx_ExceptionReset(__pyx_t_28, __pyx_t_30, __pyx_t_31); + __pyx_L31_try_end:; + } - __pyx_t_16 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 3807, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_247MFI, 0, __pyx_mstate_global->__pyx_n_u_MFI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[125])); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 3807, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); - #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_16); - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MFI, __pyx_t_19) < (0)) __PYX_ERR(4, 3807, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PANDAS_DATAFRAME, Py_None) < (0)) __PYX_ERR(2, 45, __pyx_L18_except_error) - __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 3843, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PANDAS_SERIES, Py_None) < (0)) __PYX_ERR(2, 46, __pyx_L18_except_error) + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + goto __pyx_L17_exception_handled; + } + goto __pyx_L18_except_error; - __pyx_t_16 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 3841, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_249MIDPOINT, 0, __pyx_mstate_global->__pyx_n_u_MIDPOINT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[126])); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 3841, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); - #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_16); - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MIDPOINT, __pyx_t_19) < (0)) __PYX_ERR(4, 3841, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __pyx_L18_except_error:; + __Pyx_XGIVEREF(__pyx_t_27); + __Pyx_XGIVEREF(__pyx_t_26); + __Pyx_XGIVEREF(__pyx_t_1); + __Pyx_ExceptionReset(__pyx_t_27, __pyx_t_26, __pyx_t_1); + goto __pyx_L1_error; + __pyx_L17_exception_handled:; + __Pyx_XGIVEREF(__pyx_t_27); + __Pyx_XGIVEREF(__pyx_t_26); + __Pyx_XGIVEREF(__pyx_t_1); + __Pyx_ExceptionReset(__pyx_t_27, __pyx_t_26, __pyx_t_1); + __pyx_L21_try_end:; + } - __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 3874, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_26, &__pyx_t_27); + __Pyx_XGOTREF(__pyx_t_1); + __Pyx_XGOTREF(__pyx_t_26); + __Pyx_XGOTREF(__pyx_t_27); + /*try:*/ { - __pyx_t_16 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 3872, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_251MIDPRICE, 0, __pyx_mstate_global->__pyx_n_u_MIDPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[127])); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 3872, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); - #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_16); - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MIDPRICE, __pyx_t_19) < (0)) __PYX_ERR(4, 3872, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __pyx_t_31 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_polars, 0, 0, __pyx_mstate_global->__pyx_kp_u_talib_polars, -1); if (unlikely(!__pyx_t_31)) __PYX_ERR(2, 50, __pyx_L37_error) + __pyx_t_9 = __pyx_t_31; + __Pyx_GOTREF(__pyx_t_9); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_polars, __pyx_t_9) < (0)) __PYX_ERR(2, 50, __pyx_L37_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 3906, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 51, __pyx_L37_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_polars); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 51, __pyx_L37_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_DataFrame); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 51, __pyx_L37_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_29 = __Pyx_PyObject_Append(__pyx_t_9, __pyx_t_5); if (unlikely(__pyx_t_29 == ((int)-1))) __PYX_ERR(2, 51, __pyx_L37_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_16 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 3904, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_253MIN, 0, __pyx_mstate_global->__pyx_n_u_MIN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[128])); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 3904, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); - #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_16); - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MIN, __pyx_t_19) < (0)) __PYX_ERR(4, 3904, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_ARRAY_TYPES); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 52, __pyx_L37_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_polars); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 52, __pyx_L37_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_Series); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 52, __pyx_L37_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_29 = __Pyx_PyObject_Append(__pyx_t_5, __pyx_t_3); if (unlikely(__pyx_t_29 == ((int)-1))) __PYX_ERR(2, 52, __pyx_L37_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 3937, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_polars); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 53, __pyx_L37_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_DataFrame); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 53, __pyx_L37_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME, __pyx_t_5) < (0)) __PYX_ERR(2, 53, __pyx_L37_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_16 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 3935, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_255MININDEX, 0, __pyx_mstate_global->__pyx_n_u_MININDEX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[129])); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 3935, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); - #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_16); - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MININDEX, __pyx_t_19) < (0)) __PYX_ERR(4, 3935, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_polars); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 54, __pyx_L37_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_Series); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 54, __pyx_L37_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_POLARS_SERIES, __pyx_t_3) < (0)) __PYX_ERR(2, 54, __pyx_L37_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 3971, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + } + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_t_26); __pyx_t_26 = 0; + __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0; + goto __pyx_L42_try_end; + __pyx_L37_error:; + __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; + __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; + __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; + __Pyx_XDECREF(__pyx_t_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_19); __pyx_t_19 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; + __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_XDECREF(__pyx_t_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_8); __pyx_t_8 = 0; + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_16 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 3969, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_257MINMAX, 0, __pyx_mstate_global->__pyx_n_u_MINMAX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[130])); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 3969, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); - #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_16); - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MINMAX, __pyx_t_19) < (0)) __PYX_ERR(4, 3969, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __pyx_t_25 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ImportError)))); + if (__pyx_t_25) { + __Pyx_AddTraceback("talib._ta_lib", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_5, &__pyx_t_9) < 0) __PYX_ERR(2, 55, __pyx_L39_except_error) + __Pyx_XGOTREF(__pyx_t_3); + __Pyx_XGOTREF(__pyx_t_5); + __Pyx_XGOTREF(__pyx_t_9); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_import_error, __pyx_t_5) < (0)) __PYX_ERR(2, 55, __pyx_L39_except_error) - __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4005, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_31, &__pyx_t_30, &__pyx_t_28); + __Pyx_XGOTREF(__pyx_t_31); + __Pyx_XGOTREF(__pyx_t_30); + __Pyx_XGOTREF(__pyx_t_28); + /*try:*/ { - __pyx_t_16 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 4003, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_259MINMAXINDEX, 0, __pyx_mstate_global->__pyx_n_u_MINMAXINDEX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[131])); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4003, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); - #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_16); - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MINMAXINDEX, __pyx_t_19) < (0)) __PYX_ERR(4, 4003, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_import_error); if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 57, __pyx_L45_error) + __Pyx_GOTREF(__pyx_t_13); + __pyx_t_34 = __Pyx_PyExc_ModuleNotFoundError_Check(__pyx_t_13); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_33 = (!__pyx_t_34); + if (!__pyx_t_33) { + } else { + __pyx_t_32 = __pyx_t_33; + goto __pyx_L54_bool_binop_done; + } + __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_import_error); if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 57, __pyx_L45_error) + __Pyx_GOTREF(__pyx_t_13); + __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 57, __pyx_L45_error) + __Pyx_GOTREF(__pyx_t_12); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_33 = (__Pyx_PyUnicode_Equals(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_polars, Py_NE)); if (unlikely((__pyx_t_33 < 0))) __PYX_ERR(2, 57, __pyx_L45_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __pyx_t_32 = __pyx_t_33; + __pyx_L54_bool_binop_done:; + if (unlikely(__pyx_t_32)) { + + __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_import_error); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 59, __pyx_L45_error) + __Pyx_GOTREF(__pyx_t_12); + __Pyx_Raise(__pyx_t_12, 0, 0, 0); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __PYX_ERR(2, 59, __pyx_L45_error) - __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4045, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + } - __pyx_t_16 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 4043, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_261MINUS_DI, 0, __pyx_mstate_global->__pyx_n_u_MINUS_DI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[132])); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4043, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); - #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_16); - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MINUS_DI, __pyx_t_19) < (0)) __PYX_ERR(4, 4043, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + } + __Pyx_XDECREF(__pyx_t_31); __pyx_t_31 = 0; + __Pyx_XDECREF(__pyx_t_30); __pyx_t_30 = 0; + __Pyx_XDECREF(__pyx_t_28); __pyx_t_28 = 0; + goto __pyx_L52_try_end; + __pyx_L45_error:; + __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; + __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; + __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; + __Pyx_XDECREF(__pyx_t_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_19); __pyx_t_19 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; + __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4078, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_25 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_NameError)))); + if (__pyx_t_25) { + __Pyx_ErrRestore(0,0,0); + goto __pyx_L46_exception_handled; + } + goto __pyx_L47_except_error; - __pyx_t_16 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 4076, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_263MINUS_DM, 0, __pyx_mstate_global->__pyx_n_u_MINUS_DM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[133])); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4076, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); - #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_16); - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MINUS_DM, __pyx_t_19) < (0)) __PYX_ERR(4, 4076, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __pyx_L47_except_error:; + __Pyx_XGIVEREF(__pyx_t_31); + __Pyx_XGIVEREF(__pyx_t_30); + __Pyx_XGIVEREF(__pyx_t_28); + __Pyx_ExceptionReset(__pyx_t_31, __pyx_t_30, __pyx_t_28); + goto __pyx_L39_except_error; + __pyx_L46_exception_handled:; + __Pyx_XGIVEREF(__pyx_t_31); + __Pyx_XGIVEREF(__pyx_t_30); + __Pyx_XGIVEREF(__pyx_t_28); + __Pyx_ExceptionReset(__pyx_t_31, __pyx_t_30, __pyx_t_28); + __pyx_L52_try_end:; + } - __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4110, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME, Py_None) < (0)) __PYX_ERR(2, 64, __pyx_L39_except_error) - __pyx_t_16 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 4108, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_265MOM, 0, __pyx_mstate_global->__pyx_n_u_MOM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[134])); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4108, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); - #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_16); - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MOM, __pyx_t_19) < (0)) __PYX_ERR(4, 4108, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_POLARS_SERIES, Py_None) < (0)) __PYX_ERR(2, 65, __pyx_L39_except_error) + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + goto __pyx_L38_exception_handled; + } + goto __pyx_L39_except_error; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_267MULT, 0, __pyx_mstate_global->__pyx_n_u_MULT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[135])); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4139, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MULT, __pyx_t_19) < (0)) __PYX_ERR(4, 4139, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __pyx_L39_except_error:; + __Pyx_XGIVEREF(__pyx_t_1); + __Pyx_XGIVEREF(__pyx_t_26); + __Pyx_XGIVEREF(__pyx_t_27); + __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_26, __pyx_t_27); + goto __pyx_L1_error; + __pyx_L38_exception_handled:; + __Pyx_XGIVEREF(__pyx_t_1); + __Pyx_XGIVEREF(__pyx_t_26); + __Pyx_XGIVEREF(__pyx_t_27); + __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_26, __pyx_t_27); + __pyx_L42_try_end:; + } - __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4172, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 67, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_5 = __Pyx_PySequence_Tuple(__pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 67, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_INPUT_ARRAYS_TYPES, __pyx_t_5) < (0)) __PYX_ERR(2, 67, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_16 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 4170, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_269NATR, 0, __pyx_mstate_global->__pyx_n_u_NATR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[136])); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4170, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); - #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_16); - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_NATR, __pyx_t_19) < (0)) __PYX_ERR(4, 4170, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_ARRAY_TYPES); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 68, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_9 = __Pyx_PySequence_Tuple(__pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 68, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ARRAY_TYPES, __pyx_t_9) < (0)) __PYX_ERR(2, 68, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_271OBV, 0, __pyx_mstate_global->__pyx_n_u_OBV, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[137])); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4203, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_OBV, __pyx_t_19) < (0)) __PYX_ERR(4, 4203, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_sys); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 71, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_version); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 71, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = PyObject_RichCompare(__pyx_t_5, __pyx_mstate_global->__pyx_kp_u_3, Py_GE); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 71, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_32 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely((__pyx_t_32 < 0))) __PYX_ERR(2, 71, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__pyx_t_32) { + + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_423str2bytes, 0, __pyx_mstate_global->__pyx_n_u_str2bytes, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[213])); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 73, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_str2bytes, __pyx_t_9) < (0)) __PYX_ERR(2, 73, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_425bytes2str, 0, __pyx_mstate_global->__pyx_n_u_bytes2str, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[214])); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 76, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_bytes2str, __pyx_t_9) < (0)) __PYX_ERR(2, 76, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + + goto __pyx_L58; + } + + /*else*/ { + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_427str2bytes, 0, __pyx_mstate_global->__pyx_n_u_str2bytes, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[215])); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 81, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_str2bytes, __pyx_t_9) < (0)) __PYX_ERR(2, 81, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_429bytes2str, 0, __pyx_mstate_global->__pyx_n_u_bytes2str, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[216])); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 84, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_bytes2str, __pyx_t_9) < (0)) __PYX_ERR(2, 84, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + } + __pyx_L58:; - __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4236, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_9 = __Pyx_PEP560_update_bases(__pyx_mstate_global->__pyx_tuple[8]); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 87, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_5 = __Pyx_CalculateMetaclass(NULL, __pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 87, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_5, __pyx_t_9, __pyx_mstate_global->__pyx_n_u_Function, __pyx_mstate_global->__pyx_n_u_Function, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_kp_u_This_is_a_pythonic_wrapper_arou); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 87, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (__pyx_t_9 != __pyx_mstate_global->__pyx_tuple[8]) { + if (unlikely((PyDict_SetItemString(__pyx_t_3, "__orig_bases__", __pyx_mstate_global->__pyx_tuple[8]) < 0))) __PYX_ERR(2, 87, __pyx_L1_error) + } - __pyx_t_16 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 4234, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_273PLUS_DI, 0, __pyx_mstate_global->__pyx_n_u_PLUS_DI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[138])); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4234, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_1__init__, 0, __pyx_mstate_global->__pyx_n_u_Function___init, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[217])); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 116, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_16); - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PLUS_DI, __pyx_t_19) < (0)) __PYX_ERR(4, 4234, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - - __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4269, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_12) < (0)) __PYX_ERR(2, 116, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_16 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 4267, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_275PLUS_DM, 0, __pyx_mstate_global->__pyx_n_u_PLUS_DM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[139])); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4267, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_13 = NULL; + __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_3__local, 0, __pyx_mstate_global->__pyx_n_u_Function___local, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[218])); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 129, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_16); - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PLUS_DM, __pyx_t_19) < (0)) __PYX_ERR(4, 4267, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - - __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4301, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __pyx_t_16 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 4301, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); - __pyx_t_2 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4301, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_13, __pyx_t_11}; + __pyx_t_12 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_property, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 129, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + } + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_Function__local, __pyx_t_12) < (0)) __PYX_ERR(2, 129, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_20 = PyTuple_Pack(3, __pyx_t_19, __pyx_t_16, __pyx_t_2); if (unlikely(!__pyx_t_20)) __PYX_ERR(4, 4299, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_20); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_277PPO, 0, __pyx_mstate_global->__pyx_n_u_PPO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[140])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4299, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_11 = NULL; + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_5info, 0, __pyx_mstate_global->__pyx_n_u_Function_info, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[219])); if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 171, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_20); - __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PPO, __pyx_t_2) < (0)) __PYX_ERR(4, 4299, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4334, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_11, __pyx_t_13}; + __pyx_t_12 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_property, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 171, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + } + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_info, __pyx_t_12) < (0)) __PYX_ERR(2, 171, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_20 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_20)) __PYX_ERR(4, 4332, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_20); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_279ROC, 0, __pyx_mstate_global->__pyx_n_u_ROC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[141])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4332, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_13 = NULL; + __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_7function_flags, 0, __pyx_mstate_global->__pyx_n_u_Function_function_flags, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[220])); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 178, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_20); - __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ROC, __pyx_t_2) < (0)) __PYX_ERR(4, 4332, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4365, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_13, __pyx_t_11}; + __pyx_t_12 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_property, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 178, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + } + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_function_flags, __pyx_t_12) < (0)) __PYX_ERR(2, 178, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_20 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_20)) __PYX_ERR(4, 4363, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_20); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_281ROCP, 0, __pyx_mstate_global->__pyx_n_u_ROCP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[142])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4363, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_11 = NULL; + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_9output_flags, 0, __pyx_mstate_global->__pyx_n_u_Function_output_flags, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[221])); if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 185, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_20); - __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ROCP, __pyx_t_2) < (0)) __PYX_ERR(4, 4363, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4396, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_11, __pyx_t_13}; + __pyx_t_12 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_property, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 185, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + } + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_output_flags, __pyx_t_12) < (0)) __PYX_ERR(2, 185, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_20 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_20)) __PYX_ERR(4, 4394, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_20); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_283ROCR, 0, __pyx_mstate_global->__pyx_n_u_ROCR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[143])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4394, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_11get_input_names, 0, __pyx_mstate_global->__pyx_n_u_Function_get_input_names, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[222])); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 192, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_20); - __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ROCR, __pyx_t_2) < (0)) __PYX_ERR(4, 4394, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4427, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_get_input_names, __pyx_t_12) < (0)) __PYX_ERR(2, 192, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_20 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_20)) __PYX_ERR(4, 4425, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_20); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_285ROCR100, 0, __pyx_mstate_global->__pyx_n_u_ROCR100, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[144])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4425, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_13set_input_names, 0, __pyx_mstate_global->__pyx_n_u_Function_set_input_names, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[223])); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 203, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_20); - __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ROCR100, __pyx_t_2) < (0)) __PYX_ERR(4, 4425, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_set_input_names, __pyx_t_12) < (0)) __PYX_ERR(2, 203, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4458, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_13 = NULL; + __pyx_t_11 = PyObject_GetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_get_input_names); + if (unlikely(!__pyx_t_11)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_mstate_global->__pyx_n_u_get_input_names); + } + if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 213, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __pyx_t_10 = PyObject_GetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_set_input_names); + if (unlikely(!__pyx_t_10)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_set_input_names); + } + if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 213, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[3] = {__pyx_t_13, __pyx_t_11, __pyx_t_10}; + __pyx_t_12 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_property, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 213, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + } + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_input_names, __pyx_t_12) < (0)) __PYX_ERR(2, 213, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_20 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_20)) __PYX_ERR(4, 4456, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_20); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_287RSI, 0, __pyx_mstate_global->__pyx_n_u_RSI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[145])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4456, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_15get_input_arrays, 0, __pyx_mstate_global->__pyx_n_u_Function_get_input_arrays, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[224])); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 215, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_20); - __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_RSI, __pyx_t_2) < (0)) __PYX_ERR(4, 4456, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - __pyx_t_2 = PyFloat_FromDouble(((double)0.02)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4489, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_20 = PyFloat_FromDouble(((double)0.2)); if (unlikely(!__pyx_t_20)) __PYX_ERR(4, 4489, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_20); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_get_input_arrays, __pyx_t_12) < (0)) __PYX_ERR(2, 215, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_16 = PyTuple_Pack(2, __pyx_t_2, __pyx_t_20); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 4487, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; - __pyx_t_20 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_289SAR, 0, __pyx_mstate_global->__pyx_n_u_SAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[146])); if (unlikely(!__pyx_t_20)) __PYX_ERR(4, 4487, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_20); + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_17set_input_arrays, 0, __pyx_mstate_global->__pyx_n_u_Function_set_input_arrays, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[225])); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 226, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_20); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_20, __pyx_t_16); - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SAR, __pyx_t_20) < (0)) __PYX_ERR(4, 4487, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; - - __pyx_t_20 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_20)) __PYX_ERR(4, 4522, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_20); - __pyx_t_16 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_16)) __PYX_ERR(4, 4522, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); - __pyx_t_2 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4522, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_19 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4522, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __pyx_t_4 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4522, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_15 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 4522, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __pyx_t_3 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4522, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_6 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4522, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_set_input_arrays, __pyx_t_12) < (0)) __PYX_ERR(2, 226, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_8 = PyTuple_Pack(8, __pyx_t_20, __pyx_t_16, __pyx_t_2, __pyx_t_19, __pyx_t_4, __pyx_t_15, __pyx_t_3, __pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(4, 4520, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_291SAREXT, 0, __pyx_mstate_global->__pyx_n_u_SAREXT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[147])); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4520, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_6); - #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_8); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SAREXT, __pyx_t_6) < (0)) __PYX_ERR(4, 4520, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_10 = NULL; + __pyx_t_11 = PyObject_GetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_get_input_arrays); + if (unlikely(!__pyx_t_11)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_mstate_global->__pyx_n_u_get_input_arrays); + } + if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 273, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __pyx_t_13 = PyObject_GetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_set_input_arrays); + if (unlikely(!__pyx_t_13)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_set_input_arrays); + } + if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 273, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[3] = {__pyx_t_10, __pyx_t_11, __pyx_t_13}; + __pyx_t_12 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_property, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 273, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + } + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_input_arrays, __pyx_t_12) < (0)) __PYX_ERR(2, 273, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_293SIN, 0, __pyx_mstate_global->__pyx_n_u_SIN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[148])); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4559, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_19get_parameters, 0, __pyx_mstate_global->__pyx_n_u_Function_get_parameters, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[226])); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 275, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_6); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SIN, __pyx_t_6) < (0)) __PYX_ERR(4, 4559, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_get_parameters, __pyx_t_12) < (0)) __PYX_ERR(2, 275, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_295SINH, 0, __pyx_mstate_global->__pyx_n_u_SINH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[149])); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4588, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_21set_parameters, 0, __pyx_mstate_global->__pyx_n_u_Function_set_parameters, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[227])); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 285, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_6); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SINH, __pyx_t_6) < (0)) __PYX_ERR(4, 4588, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_mstate_global->__pyx_tuple[9]); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_set_parameters, __pyx_t_12) < (0)) __PYX_ERR(2, 285, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_6 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4619, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + __pyx_t_13 = NULL; + __pyx_t_11 = PyObject_GetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_get_parameters); + if (unlikely(!__pyx_t_11)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_mstate_global->__pyx_n_u_get_parameters); + } + if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 298, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __pyx_t_10 = PyObject_GetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_set_parameters); + if (unlikely(!__pyx_t_10)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_set_parameters); + } + if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 298, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[3] = {__pyx_t_13, __pyx_t_11, __pyx_t_10}; + __pyx_t_12 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_property, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 298, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + } + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_parameters, __pyx_t_12) < (0)) __PYX_ERR(2, 298, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_8 = PyTuple_Pack(1, __pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(4, 4617, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_297SMA, 0, __pyx_mstate_global->__pyx_n_u_SMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[150])); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4617, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_23set_function_args, 0, __pyx_mstate_global->__pyx_n_u_Function_set_function_args, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[228])); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 300, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_6); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_8); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SMA, __pyx_t_6) < (0)) __PYX_ERR(4, 4617, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_set_function_args, __pyx_t_12) < (0)) __PYX_ERR(2, 300, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_299SQRT, 0, __pyx_mstate_global->__pyx_n_u_SQRT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[151])); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4648, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + __pyx_t_10 = NULL; + __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_25lookback, 0, __pyx_mstate_global->__pyx_n_u_Function_lookback, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[229])); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 335, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_6); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SQRT, __pyx_t_6) < (0)) __PYX_ERR(4, 4648, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4679, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_8 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_8)) __PYX_ERR(4, 4679, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_10, __pyx_t_11}; + __pyx_t_12 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_property, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 335, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + } + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_lookback, __pyx_t_12) < (0)) __PYX_ERR(2, 335, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_3 = PyTuple_Pack(2, __pyx_t_6, __pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4677, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_301STDDEV, 0, __pyx_mstate_global->__pyx_n_u_STDDEV, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[152])); if (unlikely(!__pyx_t_8)) __PYX_ERR(4, 4677, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); + __pyx_t_11 = NULL; + __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_27output_names, 0, __pyx_mstate_global->__pyx_n_u_Function_output_names, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[230])); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 356, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_8); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_10); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_8, __pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_STDDEV, __pyx_t_8) < (0)) __PYX_ERR(4, 4677, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - - __pyx_t_8 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_8)) __PYX_ERR(4, 4711, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4711, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_6 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4711, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_15 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 4711, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __pyx_t_4 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4711, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_11, __pyx_t_10}; + __pyx_t_12 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_property, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 356, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + } + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_output_names, __pyx_t_12) < (0)) __PYX_ERR(2, 356, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_19 = PyTuple_Pack(5, __pyx_t_8, __pyx_t_3, __pyx_t_6, __pyx_t_15, __pyx_t_4); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4709, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_303STOCH, 0, __pyx_mstate_global->__pyx_n_u_STOCH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[153])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4709, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_10 = NULL; + __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_29outputs, 0, __pyx_mstate_global->__pyx_n_u_Function_outputs, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[231])); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 366, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_19); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_STOCH, __pyx_t_4) < (0)) __PYX_ERR(4, 4709, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4751, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4751, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __pyx_t_15 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 4751, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_10, __pyx_t_11}; + __pyx_t_12 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_property, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 366, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + } + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_outputs, __pyx_t_12) < (0)) __PYX_ERR(2, 366, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_6 = PyTuple_Pack(3, __pyx_t_4, __pyx_t_19, __pyx_t_15); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4749, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - __pyx_t_15 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_305STOCHF, 0, __pyx_mstate_global->__pyx_n_u_STOCHF, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[154])); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 4749, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_31run, 0, __pyx_mstate_global->__pyx_n_u_Function_run, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[232])); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 398, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_15); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_15, __pyx_t_6); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_STOCHF, __pyx_t_15) < (0)) __PYX_ERR(4, 4749, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - - __pyx_t_15 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 4789, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __pyx_t_6 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4789, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4789, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __pyx_t_4 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4789, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_mstate_global->__pyx_tuple[9]); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_run, __pyx_t_12) < (0)) __PYX_ERR(2, 398, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_3 = PyTuple_Pack(4, __pyx_t_15, __pyx_t_6, __pyx_t_19, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4787, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_307STOCHRSI, 0, __pyx_mstate_global->__pyx_n_u_STOCHRSI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[155])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4787, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_33__call__, 0, __pyx_mstate_global->__pyx_n_u_Function___call, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[233])); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 410, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_STOCHRSI, __pyx_t_4) < (0)) __PYX_ERR(4, 4787, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_call, __pyx_t_12) < (0)) __PYX_ERR(2, 410, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_309SUB, 0, __pyx_mstate_global->__pyx_n_u_SUB, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[156])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4824, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_35__input_price_series_names, 0, __pyx_mstate_global->__pyx_n_u_Function___input_price_series_na, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[234])); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 476, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SUB, __pyx_t_4) < (0)) __PYX_ERR(4, 4824, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4857, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_Function__input_price_series_na, __pyx_t_12) < (0)) __PYX_ERR(2, 476, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_3 = PyTuple_Pack(1, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4855, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_311SUM, 0, __pyx_mstate_global->__pyx_n_u_SUM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[157])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4855, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_37__call_function, 0, __pyx_mstate_global->__pyx_n_u_Function___call_function, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[235])); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 488, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SUM, __pyx_t_4) < (0)) __PYX_ERR(4, 4855, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4888, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4888, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_Function__call_function, __pyx_t_12) < (0)) __PYX_ERR(2, 488, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_19 = PyTuple_Pack(2, __pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4886, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_313T3, 0, __pyx_mstate_global->__pyx_n_u_T3, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[158])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4886, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_39__check_opt_input_value, 0, __pyx_mstate_global->__pyx_n_u_Function___check_opt_input_value, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[236])); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 519, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_19); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_T3, __pyx_t_3) < (0)) __PYX_ERR(4, 4886, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_Function__check_opt_input_value, __pyx_t_12) < (0)) __PYX_ERR(2, 519, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_315TAN, 0, __pyx_mstate_global->__pyx_n_u_TAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[159])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4918, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_41__get_opt_input_value, 0, __pyx_mstate_global->__pyx_n_u_Function___get_opt_input_value, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[237])); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 534, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TAN, __pyx_t_3) < (0)) __PYX_ERR(4, 4918, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_Function__get_opt_input_value, __pyx_t_12) < (0)) __PYX_ERR(2, 534, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_317TANH, 0, __pyx_mstate_global->__pyx_n_u_TANH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[160])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4947, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_43__repr__, 0, __pyx_mstate_global->__pyx_n_u_Function___repr, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[238])); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 544, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TANH, __pyx_t_3) < (0)) __PYX_ERR(4, 4947, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4978, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_repr, __pyx_t_12) < (0)) __PYX_ERR(2, 544, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_19 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4976, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_319TEMA, 0, __pyx_mstate_global->__pyx_n_u_TEMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[161])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4976, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_45__unicode__, 0, __pyx_mstate_global->__pyx_n_u_Function___unicode, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[239])); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 547, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_19); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TEMA, __pyx_t_3) < (0)) __PYX_ERR(4, 4976, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_unicode, __pyx_t_12) < (0)) __PYX_ERR(2, 547, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_321TRANGE, 0, __pyx_mstate_global->__pyx_n_u_TRANGE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[162])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 5007, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_47__str__, 0, __pyx_mstate_global->__pyx_n_u_Function___str, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[240])); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 550, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TRANGE, __pyx_t_3) < (0)) __PYX_ERR(4, 5007, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 5040, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_str, __pyx_t_12) < (0)) __PYX_ERR(2, 550, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_19 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 5038, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_323TRIMA, 0, __pyx_mstate_global->__pyx_n_u_TRIMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[163])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 5038, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_12 = __Pyx_Py3ClassCreate(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_Function, __pyx_t_9, __pyx_t_3, NULL, 0, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 87, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_19); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TRIMA, __pyx_t_3) < (0)) __PYX_ERR(4, 5038, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_Function, __pyx_t_12) < (0)) __PYX_ERR(2, 87, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 5071, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - - __pyx_t_19 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 5069, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_325TRIX, 0, __pyx_mstate_global->__pyx_n_u_TRIX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[164])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 5069, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_431_ta_getGroupTable, 0, __pyx_mstate_global->__pyx_n_u_ta_getGroupTable, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[241])); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 564, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_19); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TRIX, __pyx_t_3) < (0)) __PYX_ERR(4, 5069, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 5102, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_getGroupTable, __pyx_t_9) < (0)) __PYX_ERR(2, 564, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_19 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 5100, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_327TSF, 0, __pyx_mstate_global->__pyx_n_u_TSF, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[165])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 5100, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_433_ta_getFuncTable, 0, __pyx_mstate_global->__pyx_n_u_ta_getFuncTable, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[242])); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 576, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_19); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TSF, __pyx_t_3) < (0)) __PYX_ERR(4, 5100, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_getFuncTable, __pyx_t_9) < (0)) __PYX_ERR(2, 576, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_329TYPPRICE, 0, __pyx_mstate_global->__pyx_n_u_TYPPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[166])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 5131, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_435__get_flags, 0, __pyx_mstate_global->__pyx_n_u_get_flags, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[243])); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 588, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TYPPRICE, __pyx_t_3) < (0)) __PYX_ERR(4, 5131, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_get_flags, __pyx_t_9) < (0)) __PYX_ERR(2, 588, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 5164, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 5164, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5164, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_9 = __Pyx_PyDict_NewPresized(8); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 603, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_int_1, __pyx_mstate_global->__pyx_kp_u_A_period_of_1_performs_no_smooth) < (0)) __PYX_ERR(2, 603, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_int_16777216, __pyx_mstate_global->__pyx_kp_u_Output_scale_same_as_input) < (0)) __PYX_ERR(2, 603, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_int_33554432, __pyx_mstate_global->__pyx_kp_u_Function_has_a_streaming_API) < (0)) __PYX_ERR(2, 603, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_int_67108864, __pyx_mstate_global->__pyx_kp_u_Output_is_over_volume) < (0)) __PYX_ERR(2, 603, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_int_134217728, __pyx_mstate_global->__pyx_kp_u_Function_has_an_unstable_period) < (0)) __PYX_ERR(2, 603, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_int_268435456, __pyx_mstate_global->__pyx_kp_u_Output_is_a_candlestick) < (0)) __PYX_ERR(2, 603, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_int_536870912, __pyx_mstate_global->__pyx_kp_u_Output_is_path_dependent) < (0)) __PYX_ERR(2, 603, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_int_1073741824, __pyx_mstate_global->__pyx_kp_u_Output_can_be_NaN_or_infinite) < (0)) __PYX_ERR(2, 603, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TA_FUNC_FLAGS, __pyx_t_9) < (0)) __PYX_ERR(2, 602, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_6 = PyTuple_Pack(3, __pyx_t_3, __pyx_t_19, __pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 5162, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_331ULTOSC, 0, __pyx_mstate_global->__pyx_n_u_ULTOSC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[167])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5162, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); - #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_6); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ULTOSC, __pyx_t_4) < (0)) __PYX_ERR(4, 5162, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_9 = __Pyx_PyDict_NewPresized(7); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 615, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_int_1, __pyx_mstate_global->__pyx_n_u_open) < (0)) __PYX_ERR(2, 615, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_int_2, __pyx_mstate_global->__pyx_n_u_high) < (0)) __PYX_ERR(2, 615, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_int_4, __pyx_mstate_global->__pyx_n_u_low) < (0)) __PYX_ERR(2, 615, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_int_8, __pyx_mstate_global->__pyx_n_u_close) < (0)) __PYX_ERR(2, 615, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_int_16, __pyx_mstate_global->__pyx_n_u_volume) < (0)) __PYX_ERR(2, 615, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_int_32, __pyx_mstate_global->__pyx_n_u_openInterest) < (0)) __PYX_ERR(2, 615, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_int_64, __pyx_mstate_global->__pyx_n_u_timeStamp) < (0)) __PYX_ERR(2, 615, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TA_INPUT_FLAGS, __pyx_t_9) < (0)) __PYX_ERR(2, 614, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5199, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 5199, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + __pyx_t_9 = __Pyx_PyDict_NewPresized(14); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 625, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_int_1, __pyx_mstate_global->__pyx_n_u_Line) < (0)) __PYX_ERR(2, 625, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_int_2, __pyx_mstate_global->__pyx_kp_u_Dotted_Line) < (0)) __PYX_ERR(2, 625, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_int_4, __pyx_mstate_global->__pyx_kp_u_Dashed_Line) < (0)) __PYX_ERR(2, 625, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_int_8, __pyx_mstate_global->__pyx_n_u_Dot) < (0)) __PYX_ERR(2, 625, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_int_16, __pyx_mstate_global->__pyx_n_u_Histogram) < (0)) __PYX_ERR(2, 625, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_int_32, __pyx_mstate_global->__pyx_kp_u_Pattern_Bool) < (0)) __PYX_ERR(2, 625, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_int_64, __pyx_mstate_global->__pyx_kp_u_Bull_Bear_Pattern_Bearish_0_Neut) < (0)) __PYX_ERR(2, 625, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_int_128, __pyx_mstate_global->__pyx_kp_u_Strength_Pattern_200_100_Bearish) < (0)) __PYX_ERR(2, 625, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_int_256, __pyx_mstate_global->__pyx_kp_u_Output_can_be_positive) < (0)) __PYX_ERR(2, 625, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_int_512, __pyx_mstate_global->__pyx_kp_u_Output_can_be_negative) < (0)) __PYX_ERR(2, 625, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_int_1024, __pyx_mstate_global->__pyx_kp_u_Output_can_be_zero) < (0)) __PYX_ERR(2, 625, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_int_2048, __pyx_mstate_global->__pyx_kp_u_Values_represent_an_upper_limit) < (0)) __PYX_ERR(2, 625, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_int_4096, __pyx_mstate_global->__pyx_kp_u_Values_represent_a_lower_limit) < (0)) __PYX_ERR(2, 625, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_int_8192, __pyx_mstate_global->__pyx_kp_u_Output_is_optional_nullable) < (0)) __PYX_ERR(2, 625, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TA_OUTPUT_FLAGS, __pyx_t_9) < (0)) __PYX_ERR(2, 624, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_19 = PyTuple_Pack(2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 5197, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_333VAR, 0, __pyx_mstate_global->__pyx_n_u_VAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[168])); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 5197, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_437_ta_getFuncInfo, 0, __pyx_mstate_global->__pyx_n_u_ta_getFuncInfo, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[244])); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 641, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_6); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_19); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_VAR, __pyx_t_6) < (0)) __PYX_ERR(4, 5197, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_getFuncInfo, __pyx_t_9) < (0)) __PYX_ERR(2, 641, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_335WCLPRICE, 0, __pyx_mstate_global->__pyx_n_u_WCLPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[169])); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 5229, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_439_ta_getInputParameterInfo, 0, __pyx_mstate_global->__pyx_n_u_ta_getInputParameterInfo, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[245])); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 660, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_6); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_WCLPRICE, __pyx_t_6) < (0)) __PYX_ERR(4, 5229, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 5262, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_getInputParameterInfo, __pyx_t_9) < (0)) __PYX_ERR(2, 660, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_19 = PyTuple_Pack(1, __pyx_t_6); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 5260, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_337WILLR, 0, __pyx_mstate_global->__pyx_n_u_WILLR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[170])); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 5260, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_441_ta_getOptInputParameterInfo, 0, __pyx_mstate_global->__pyx_n_u_ta_getOptInputParameterInfo, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[246])); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 681, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_6); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_19); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_WILLR, __pyx_t_6) < (0)) __PYX_ERR(4, 5260, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 5295, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_getOptInputParameterInfo, __pyx_t_9) < (0)) __PYX_ERR(2, 681, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_19 = PyTuple_Pack(1, __pyx_t_6); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 5293, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_339WMA, 0, __pyx_mstate_global->__pyx_n_u_WMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[171])); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 5293, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_443_ta_getOutputParameterInfo, 0, __pyx_mstate_global->__pyx_n_u_ta_getOutputParameterInfo, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[247])); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 703, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_6); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_19); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_WMA, __pyx_t_6) < (0)) __PYX_ERR(4, 5293, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_PyList_Pack(161, __pyx_mstate_global->__pyx_n_u_ACCBANDS, __pyx_mstate_global->__pyx_n_u_ACOS, __pyx_mstate_global->__pyx_n_u_AD, __pyx_mstate_global->__pyx_n_u_ADD, __pyx_mstate_global->__pyx_n_u_ADOSC, __pyx_mstate_global->__pyx_n_u_ADX, __pyx_mstate_global->__pyx_n_u_ADXR, __pyx_mstate_global->__pyx_n_u_APO, __pyx_mstate_global->__pyx_n_u_AROON, __pyx_mstate_global->__pyx_n_u_AROONOSC, __pyx_mstate_global->__pyx_n_u_ASIN, __pyx_mstate_global->__pyx_n_u_ATAN, __pyx_mstate_global->__pyx_n_u_ATR, __pyx_mstate_global->__pyx_n_u_AVGPRICE, __pyx_mstate_global->__pyx_n_u_AVGDEV, __pyx_mstate_global->__pyx_n_u_BBANDS, __pyx_mstate_global->__pyx_n_u_BETA, __pyx_mstate_global->__pyx_n_u_BOP, __pyx_mstate_global->__pyx_n_u_CCI, __pyx_mstate_global->__pyx_n_u_CDL2CROWS, __pyx_mstate_global->__pyx_n_u_CDL3BLACKCROWS, __pyx_mstate_global->__pyx_n_u_CDL3INSIDE, __pyx_mstate_global->__pyx_n_u_CDL3LINESTRIKE, __pyx_mstate_global->__pyx_n_u_CDL3OUTSIDE, __pyx_mstate_global->__pyx_n_u_CDL3STARSINSOUTH, __pyx_mstate_global->__pyx_n_u_CDL3WHITESOLDIERS, __pyx_mstate_global->__pyx_n_u_CDLABANDONEDBABY, __pyx_mstate_global->__pyx_n_u_CDLADVANCEBLOCK, __pyx_mstate_global->__pyx_n_u_CDLBELTHOLD, __pyx_mstate_global->__pyx_n_u_CDLBREAKAWAY, __pyx_mstate_global->__pyx_n_u_CDLCLOSINGMARUBOZU, __pyx_mstate_global->__pyx_n_u_CDLCONCEALBABYSWALL, __pyx_mstate_global->__pyx_n_u_CDLCOUNTERATTACK, __pyx_mstate_global->__pyx_n_u_CDLDARKCLOUDCOVER, __pyx_mstate_global->__pyx_n_u_CDLDOJI, __pyx_mstate_global->__pyx_n_u_CDLDOJISTAR, __pyx_mstate_global->__pyx_n_u_CDLDRAGONFLYDOJI, __pyx_mstate_global->__pyx_n_u_CDLENGULFING, __pyx_mstate_global->__pyx_n_u_CDLEVENINGDOJISTAR, __pyx_mstate_global->__pyx_n_u_CDLEVENINGSTAR, __pyx_mstate_global->__pyx_n_u_CDLGAPSIDESIDEWHITE, __pyx_mstate_global->__pyx_n_u_CDLGRAVESTONEDOJI, __pyx_mstate_global->__pyx_n_u_CDLHAMMER, __pyx_mstate_global->__pyx_n_u_CDLHANGINGMAN, __pyx_mstate_global->__pyx_n_u_CDLHARAMI, __pyx_mstate_global->__pyx_n_u_CDLHARAMICROSS, __pyx_mstate_global->__pyx_n_u_CDLHIGHWAVE, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKE, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKEMOD, __pyx_mstate_global->__pyx_n_u_CDLHOMINGPIGEON, __pyx_mstate_global->__pyx_n_u_CDLIDENTICAL3CROWS, __pyx_mstate_global->__pyx_n_u_CDLINNECK, __pyx_mstate_global->__pyx_n_u_CDLINVERTEDHAMMER, __pyx_mstate_global->__pyx_n_u_CDLKICKING, __pyx_mstate_global->__pyx_n_u_CDLKICKINGBYLENGTH, __pyx_mstate_global->__pyx_n_u_CDLLADDERBOTTOM, __pyx_mstate_global->__pyx_n_u_CDLLONGLEGGEDDOJI, __pyx_mstate_global->__pyx_n_u_CDLLONGLINE, __pyx_mstate_global->__pyx_n_u_CDLMARUBOZU, __pyx_mstate_global->__pyx_n_u_CDLMATCHINGLOW, __pyx_mstate_global->__pyx_n_u_CDLMATHOLD, __pyx_mstate_global->__pyx_n_u_CDLMORNINGDOJISTAR, __pyx_mstate_global->__pyx_n_u_CDLMORNINGSTAR, __pyx_mstate_global->__pyx_n_u_CDLONNECK, __pyx_mstate_global->__pyx_n_u_CDLPIERCING, __pyx_mstate_global->__pyx_n_u_CDLRICKSHAWMAN, __pyx_mstate_global->__pyx_n_u_CDLRISEFALL3METHODS, __pyx_mstate_global->__pyx_n_u_CDLSEPARATINGLINES, __pyx_mstate_global->__pyx_n_u_CDLSHOOTINGSTAR, __pyx_mstate_global->__pyx_n_u_CDLSHORTLINE, __pyx_mstate_global->__pyx_n_u_CDLSPINNINGTOP, __pyx_mstate_global->__pyx_n_u_CDLSTALLEDPATTERN, __pyx_mstate_global->__pyx_n_u_CDLSTICKSANDWICH, __pyx_mstate_global->__pyx_n_u_CDLTAKURI, __pyx_mstate_global->__pyx_n_u_CDLTASUKIGAP, __pyx_mstate_global->__pyx_n_u_CDLTHRUSTING, __pyx_mstate_global->__pyx_n_u_CDLTRISTAR, __pyx_mstate_global->__pyx_n_u_CDLUNIQUE3RIVER, __pyx_mstate_global->__pyx_n_u_CDLUPSIDEGAP2CROWS, __pyx_mstate_global->__pyx_n_u_CDLXSIDEGAP3METHODS, __pyx_mstate_global->__pyx_n_u_CEIL, __pyx_mstate_global->__pyx_n_u_CMO, __pyx_mstate_global->__pyx_n_u_CORREL, __pyx_mstate_global->__pyx_n_u_COS, __pyx_mstate_global->__pyx_n_u_COSH, __pyx_mstate_global->__pyx_n_u_DEMA, __pyx_mstate_global->__pyx_n_u_DIV, __pyx_mstate_global->__pyx_n_u_DX, __pyx_mstate_global->__pyx_n_u_EMA, __pyx_mstate_global->__pyx_n_u_EXP, __pyx_mstate_global->__pyx_n_u_FLOOR, __pyx_mstate_global->__pyx_n_u_HT_DCPERIOD, __pyx_mstate_global->__pyx_n_u_HT_DCPHASE, __pyx_mstate_global->__pyx_n_u_HT_PHASOR, __pyx_mstate_global->__pyx_n_u_HT_SINE, __pyx_mstate_global->__pyx_n_u_HT_TRENDLINE, __pyx_mstate_global->__pyx_n_u_HT_TRENDMODE, __pyx_mstate_global->__pyx_n_u_IMI, __pyx_mstate_global->__pyx_n_u_KAMA, __pyx_mstate_global->__pyx_n_u_LINEARREG, __pyx_mstate_global->__pyx_n_u_LINEARREG_ANGLE, __pyx_mstate_global->__pyx_n_u_LINEARREG_INTERCEPT, __pyx_mstate_global->__pyx_n_u_LINEARREG_SLOPE, __pyx_mstate_global->__pyx_n_u_LN, __pyx_mstate_global->__pyx_n_u_LOG10, __pyx_mstate_global->__pyx_n_u_MA, __pyx_mstate_global->__pyx_n_u_MACD, __pyx_mstate_global->__pyx_n_u_MACDEXT, __pyx_mstate_global->__pyx_n_u_MACDFIX, __pyx_mstate_global->__pyx_n_u_MAMA, __pyx_mstate_global->__pyx_n_u_MAVP, __pyx_mstate_global->__pyx_n_u_MAX, __pyx_mstate_global->__pyx_n_u_MAXINDEX, __pyx_mstate_global->__pyx_n_u_MEDPRICE, __pyx_mstate_global->__pyx_n_u_MFI, __pyx_mstate_global->__pyx_n_u_MIDPOINT, __pyx_mstate_global->__pyx_n_u_MIDPRICE, __pyx_mstate_global->__pyx_n_u_MIN, __pyx_mstate_global->__pyx_n_u_MININDEX, __pyx_mstate_global->__pyx_n_u_MINMAX, __pyx_mstate_global->__pyx_n_u_MINMAXINDEX, __pyx_mstate_global->__pyx_n_u_MINUS_DI, __pyx_mstate_global->__pyx_n_u_MINUS_DM, __pyx_mstate_global->__pyx_n_u_MOM, __pyx_mstate_global->__pyx_n_u_MULT, __pyx_mstate_global->__pyx_n_u_NATR, __pyx_mstate_global->__pyx_n_u_OBV, __pyx_mstate_global->__pyx_n_u_PLUS_DI, __pyx_mstate_global->__pyx_n_u_PLUS_DM, __pyx_mstate_global->__pyx_n_u_PPO, __pyx_mstate_global->__pyx_n_u_ROC, __pyx_mstate_global->__pyx_n_u_ROCP, __pyx_mstate_global->__pyx_n_u_ROCR, __pyx_mstate_global->__pyx_n_u_ROCR100, __pyx_mstate_global->__pyx_n_u_RSI, __pyx_mstate_global->__pyx_n_u_SAR, __pyx_mstate_global->__pyx_n_u_SAREXT, __pyx_mstate_global->__pyx_n_u_SIN, __pyx_mstate_global->__pyx_n_u_SINH, __pyx_mstate_global->__pyx_n_u_SMA, __pyx_mstate_global->__pyx_n_u_SQRT, __pyx_mstate_global->__pyx_n_u_STDDEV, __pyx_mstate_global->__pyx_n_u_STOCH, __pyx_mstate_global->__pyx_n_u_STOCHF, __pyx_mstate_global->__pyx_n_u_STOCHRSI, __pyx_mstate_global->__pyx_n_u_SUB, __pyx_mstate_global->__pyx_n_u_SUM, __pyx_mstate_global->__pyx_n_u_T3, __pyx_mstate_global->__pyx_n_u_TAN, __pyx_mstate_global->__pyx_n_u_TANH, __pyx_mstate_global->__pyx_n_u_TEMA, __pyx_mstate_global->__pyx_n_u_TRANGE, __pyx_mstate_global->__pyx_n_u_TRIMA, __pyx_mstate_global->__pyx_n_u_TRIX, __pyx_mstate_global->__pyx_n_u_TSF, __pyx_mstate_global->__pyx_n_u_TYPPRICE, __pyx_mstate_global->__pyx_n_u_ULTOSC, __pyx_mstate_global->__pyx_n_u_VAR, __pyx_mstate_global->__pyx_n_u_WCLPRICE, __pyx_mstate_global->__pyx_n_u_WILLR, __pyx_mstate_global->__pyx_n_u_WMA); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 5324, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TA_FUNCTION_NAMES, __pyx_t_6) < (0)) __PYX_ERR(4, 5324, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_math, 0, 0, __pyx_mstate_global->__pyx_kp_u_talib_math, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4, __pyx_L1_error) - __pyx_t_6 = __pyx_t_1; - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_math, __pyx_t_6) < (0)) __PYX_ERR(2, 4, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_threading, 0, 0, __pyx_mstate_global->__pyx_kp_u_talib_threading, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 5, __pyx_L1_error) - __pyx_t_6 = __pyx_t_1; - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_threading, __pyx_t_6) < (0)) __PYX_ERR(2, 5, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_24, &__pyx_t_25); - __Pyx_XGOTREF(__pyx_t_1); - __Pyx_XGOTREF(__pyx_t_24); - __Pyx_XGOTREF(__pyx_t_25); - /*try:*/ { - - { - PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_OrderedDict}; - __pyx_t_26 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_collections, __pyx_imported_names, 1, __pyx_mstate_global->__pyx_kp_u_talib_collections, -1); if (unlikely(!__pyx_t_26)) __PYX_ERR(2, 7, __pyx_L11_error) - } - __pyx_t_6 = __pyx_t_26; - __Pyx_GOTREF(__pyx_t_6); - { - PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_OrderedDict}; - __pyx_t_18 = 0; { - __pyx_t_19 = __Pyx_ImportFrom(__pyx_t_6, __pyx_imported_names[__pyx_t_18]); if (unlikely(!__pyx_t_19)) __PYX_ERR(2, 7, __pyx_L11_error) - __Pyx_GOTREF(__pyx_t_19); - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_imported_names[__pyx_t_18], __pyx_t_19) < (0)) __PYX_ERR(2, 7, __pyx_L11_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - } - } - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - } - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0; - __Pyx_XDECREF(__pyx_t_25); __pyx_t_25 = 0; - goto __pyx_L16_try_end; - __pyx_L11_error:; - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; - __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; - __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; - __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; - __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; - __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; - __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_XDECREF(__pyx_t_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_8); __pyx_t_8 = 0; - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - - __pyx_t_23 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ImportError)))); - if (__pyx_t_23) { - __Pyx_AddTraceback("talib._ta_lib", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_19, &__pyx_t_4) < 0) __PYX_ERR(2, 8, __pyx_L13_except_error) - __Pyx_XGOTREF(__pyx_t_6); - __Pyx_XGOTREF(__pyx_t_19); - __Pyx_XGOTREF(__pyx_t_4); - - { - PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_OrderedDict}; - __pyx_t_26 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_ordereddict, __pyx_imported_names, 1, __pyx_mstate_global->__pyx_kp_u_talib_ordereddict, -1); if (unlikely(!__pyx_t_26)) __PYX_ERR(2, 9, __pyx_L13_except_error) - } - __pyx_t_3 = __pyx_t_26; - __Pyx_GOTREF(__pyx_t_3); - { - PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_OrderedDict}; - __pyx_t_18 = 0; { - __pyx_t_15 = __Pyx_ImportFrom(__pyx_t_3, __pyx_imported_names[__pyx_t_18]); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 9, __pyx_L13_except_error) - __Pyx_GOTREF(__pyx_t_15); - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_imported_names[__pyx_t_18], __pyx_t_15) < (0)) __PYX_ERR(2, 9, __pyx_L13_except_error) - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - } - } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - goto __pyx_L12_exception_handled; - } - goto __pyx_L13_except_error; - - __pyx_L13_except_error:; - __Pyx_XGIVEREF(__pyx_t_1); - __Pyx_XGIVEREF(__pyx_t_24); - __Pyx_XGIVEREF(__pyx_t_25); - __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_24, __pyx_t_25); - goto __pyx_L1_error; - __pyx_L12_exception_handled:; - __Pyx_XGIVEREF(__pyx_t_1); - __Pyx_XGIVEREF(__pyx_t_24); - __Pyx_XGIVEREF(__pyx_t_25); - __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_24, __pyx_t_25); - __pyx_L16_try_end:; - } - - __pyx_t_25 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_numpy, 0, 0, __pyx_mstate_global->__pyx_kp_u_talib_numpy, -1); if (unlikely(!__pyx_t_25)) __PYX_ERR(2, 11, __pyx_L1_error) - __pyx_t_4 = __pyx_t_25; - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_numpy, __pyx_t_4) < (0)) __PYX_ERR(2, 11, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - __pyx_t_25 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_sys, 0, 0, __pyx_mstate_global->__pyx_kp_u_talib_sys, -1); if (unlikely(!__pyx_t_25)) __PYX_ERR(2, 12, __pyx_L1_error) - __pyx_t_4 = __pyx_t_25; - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_sys, __pyx_t_4) < (0)) __PYX_ERR(2, 12, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - __pyx_t_23 = __pyx_f_5numpy_import_array(); if (unlikely(__pyx_t_23 == ((int)-1))) __PYX_ERR(2, 18, __pyx_L1_error) - - __pyx_t_4 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 21, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_price, __pyx_mstate_global->__pyx_n_u_close) < (0)) __PYX_ERR(2, 21, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_price0, __pyx_mstate_global->__pyx_n_u_high) < (0)) __PYX_ERR(2, 21, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_price1, __pyx_mstate_global->__pyx_n_u_low) < (0)) __PYX_ERR(2, 21, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_periods, __pyx_mstate_global->__pyx_n_u_periods) < (0)) __PYX_ERR(2, 21, __pyx_L1_error) - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_INPUT_PRICE_SERIES_DEFAULTS, __pyx_t_4) < (0)) __PYX_ERR(2, 21, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - __pyx_t_4 = __Pyx_PyList_Pack(1, ((PyObject *)(&PyDict_Type))); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 27, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_INPUT_ARRAYS_TYPES, __pyx_t_4) < (0)) __PYX_ERR(2, 27, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - __pyx_t_4 = __Pyx_PyList_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_5numpy_ndarray)); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 28, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ARRAY_TYPES, __pyx_t_4) < (0)) __PYX_ERR(2, 28, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_25, &__pyx_t_24, &__pyx_t_1); - __Pyx_XGOTREF(__pyx_t_25); - __Pyx_XGOTREF(__pyx_t_24); - __Pyx_XGOTREF(__pyx_t_1); - /*try:*/ { - - __pyx_t_26 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_pandas, 0, 0, __pyx_mstate_global->__pyx_kp_u_talib_pandas, -1); if (unlikely(!__pyx_t_26)) __PYX_ERR(2, 32, __pyx_L19_error) - __pyx_t_4 = __pyx_t_26; - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pandas, __pyx_t_4) < (0)) __PYX_ERR(2, 32, __pyx_L19_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 33, __pyx_L19_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GetModuleGlobalName(__pyx_t_19, __pyx_mstate_global->__pyx_n_u_pandas); if (unlikely(!__pyx_t_19)) __PYX_ERR(2, 33, __pyx_L19_error) - __Pyx_GOTREF(__pyx_t_19); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_19, __pyx_mstate_global->__pyx_n_u_DataFrame); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 33, __pyx_L19_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_27 = __Pyx_PyObject_Append(__pyx_t_4, __pyx_t_6); if (unlikely(__pyx_t_27 == ((int)-1))) __PYX_ERR(2, 33, __pyx_L19_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_ARRAY_TYPES); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 34, __pyx_L19_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_pandas); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 34, __pyx_L19_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_Series); if (unlikely(!__pyx_t_19)) __PYX_ERR(2, 34, __pyx_L19_error) - __Pyx_GOTREF(__pyx_t_19); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_27 = __Pyx_PyObject_Append(__pyx_t_6, __pyx_t_19); if (unlikely(__pyx_t_27 == ((int)-1))) __PYX_ERR(2, 34, __pyx_L19_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - - __Pyx_GetModuleGlobalName(__pyx_t_19, __pyx_mstate_global->__pyx_n_u_pandas); if (unlikely(!__pyx_t_19)) __PYX_ERR(2, 35, __pyx_L19_error) - __Pyx_GOTREF(__pyx_t_19); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_19, __pyx_mstate_global->__pyx_n_u_DataFrame); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 35, __pyx_L19_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PANDAS_DATAFRAME, __pyx_t_6) < (0)) __PYX_ERR(2, 35, __pyx_L19_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_pandas); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 36, __pyx_L19_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_Series); if (unlikely(!__pyx_t_19)) __PYX_ERR(2, 36, __pyx_L19_error) - __Pyx_GOTREF(__pyx_t_19); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PANDAS_SERIES, __pyx_t_19) < (0)) __PYX_ERR(2, 36, __pyx_L19_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - - } - __Pyx_XDECREF(__pyx_t_25); __pyx_t_25 = 0; - __Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0; - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - goto __pyx_L24_try_end; - __pyx_L19_error:; - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; - __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; - __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; - __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; - __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; - __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; - __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_XDECREF(__pyx_t_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_8); __pyx_t_8 = 0; - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - - __pyx_t_23 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ImportError)))); - if (__pyx_t_23) { - __Pyx_AddTraceback("talib._ta_lib", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_19, &__pyx_t_6, &__pyx_t_4) < 0) __PYX_ERR(2, 37, __pyx_L21_except_error) - __Pyx_XGOTREF(__pyx_t_19); - __Pyx_XGOTREF(__pyx_t_6); - __Pyx_XGOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_import_error, __pyx_t_6) < (0)) __PYX_ERR(2, 37, __pyx_L21_except_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_getOutputParameterInfo, __pyx_t_9) < (0)) __PYX_ERR(2, 703, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_26, &__pyx_t_28, &__pyx_t_29); - __Pyx_XGOTREF(__pyx_t_26); - __Pyx_XGOTREF(__pyx_t_28); - __Pyx_XGOTREF(__pyx_t_29); - /*try:*/ { + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_445_get_defaults_and_docs, 0, __pyx_mstate_global->__pyx_n_u_get_defaults_and_docs, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[248])); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 723, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_get_defaults_and_docs, __pyx_t_9) < (0)) __PYX_ERR(2, 723, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_import_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 39, __pyx_L27_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_31 = __Pyx_PyExc_ModuleNotFoundError_Check(__pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_32 = (!__pyx_t_31); - if (!__pyx_t_32) { - } else { - __pyx_t_30 = __pyx_t_32; - goto __pyx_L36_bool_binop_done; - } - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_import_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 39, __pyx_L27_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 39, __pyx_L27_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_32 = (__Pyx_PyUnicode_Equals(__pyx_t_15, __pyx_mstate_global->__pyx_n_u_pandas, Py_NE)); if (unlikely((__pyx_t_32 < 0))) __PYX_ERR(2, 39, __pyx_L27_error) - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - __pyx_t_30 = __pyx_t_32; - __pyx_L36_bool_binop_done:; - if (unlikely(__pyx_t_30)) { - - __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_mstate_global->__pyx_n_u_import_error); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 41, __pyx_L27_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_Raise(__pyx_t_15, 0, 0, 0); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - __PYX_ERR(2, 41, __pyx_L27_error) + __pyx_t_25 = __pyx_f_5numpy_import_array(); if (unlikely(__pyx_t_25 == ((int)-1))) __PYX_ERR(5, 7, __pyx_L1_error) - } + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 11, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 11, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 11, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); - } - __Pyx_XDECREF(__pyx_t_26); __pyx_t_26 = 0; - __Pyx_XDECREF(__pyx_t_28); __pyx_t_28 = 0; - __Pyx_XDECREF(__pyx_t_29); __pyx_t_29 = 0; - goto __pyx_L34_try_end; - __pyx_L27_error:; - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; - __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; - __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; - __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; - __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; - __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_12 = PyTuple_Pack(3, __pyx_t_9, __pyx_t_5, __pyx_t_3); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 9, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_447stream_AC, 0, __pyx_mstate_global->__pyx_n_u_stream_AC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[249])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 9, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_12); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_AC, __pyx_t_3) < (0)) __PYX_ERR(5, 9, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_23 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_NameError)))); - if (__pyx_t_23) { - __Pyx_ErrRestore(0,0,0); - goto __pyx_L28_exception_handled; - } - goto __pyx_L29_except_error; + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 45, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); - __pyx_L29_except_error:; - __Pyx_XGIVEREF(__pyx_t_26); - __Pyx_XGIVEREF(__pyx_t_28); - __Pyx_XGIVEREF(__pyx_t_29); - __Pyx_ExceptionReset(__pyx_t_26, __pyx_t_28, __pyx_t_29); - goto __pyx_L21_except_error; - __pyx_L28_exception_handled:; - __Pyx_XGIVEREF(__pyx_t_26); - __Pyx_XGIVEREF(__pyx_t_28); - __Pyx_XGIVEREF(__pyx_t_29); - __Pyx_ExceptionReset(__pyx_t_26, __pyx_t_28, __pyx_t_29); - __pyx_L34_try_end:; - } + __pyx_t_12 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 43, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_449stream_ACCBANDS, 0, __pyx_mstate_global->__pyx_n_u_stream_ACCBANDS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[250])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 43, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_12); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ACCBANDS, __pyx_t_3) < (0)) __PYX_ERR(5, 43, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PANDAS_DATAFRAME, Py_None) < (0)) __PYX_ERR(2, 46, __pyx_L21_except_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_451stream_ACOS, 0, __pyx_mstate_global->__pyx_n_u_stream_ACOS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[251])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 84, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ACOS, __pyx_t_3) < (0)) __PYX_ERR(5, 84, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PANDAS_SERIES, Py_None) < (0)) __PYX_ERR(2, 47, __pyx_L21_except_error) - __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - goto __pyx_L20_exception_handled; - } - goto __pyx_L21_except_error; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_453stream_AD, 0, __pyx_mstate_global->__pyx_n_u_stream_AD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[252])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 111, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_AD, __pyx_t_3) < (0)) __PYX_ERR(5, 111, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_L21_except_error:; - __Pyx_XGIVEREF(__pyx_t_25); - __Pyx_XGIVEREF(__pyx_t_24); - __Pyx_XGIVEREF(__pyx_t_1); - __Pyx_ExceptionReset(__pyx_t_25, __pyx_t_24, __pyx_t_1); - goto __pyx_L1_error; - __pyx_L20_exception_handled:; - __Pyx_XGIVEREF(__pyx_t_25); - __Pyx_XGIVEREF(__pyx_t_24); - __Pyx_XGIVEREF(__pyx_t_1); - __Pyx_ExceptionReset(__pyx_t_25, __pyx_t_24, __pyx_t_1); - __pyx_L24_try_end:; - } + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_455stream_ADD, 0, __pyx_mstate_global->__pyx_n_u_stream_ADD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[253])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 147, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ADD, __pyx_t_3) < (0)) __PYX_ERR(5, 147, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_24, &__pyx_t_25); - __Pyx_XGOTREF(__pyx_t_1); - __Pyx_XGOTREF(__pyx_t_24); - __Pyx_XGOTREF(__pyx_t_25); - /*try:*/ { + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 180, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 180, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); - __pyx_t_29 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_polars, 0, 0, __pyx_mstate_global->__pyx_kp_u_talib_polars, -1); if (unlikely(!__pyx_t_29)) __PYX_ERR(2, 51, __pyx_L40_error) - __pyx_t_4 = __pyx_t_29; - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_polars, __pyx_t_4) < (0)) __PYX_ERR(2, 51, __pyx_L40_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_5 = PyTuple_Pack(2, __pyx_t_3, __pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 178, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_457stream_ADOSC, 0, __pyx_mstate_global->__pyx_n_u_stream_ADOSC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[254])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 178, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ADOSC, __pyx_t_12) < (0)) __PYX_ERR(5, 178, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 52, __pyx_L40_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_polars); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 52, __pyx_L40_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_DataFrame); if (unlikely(!__pyx_t_19)) __PYX_ERR(2, 52, __pyx_L40_error) - __Pyx_GOTREF(__pyx_t_19); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_27 = __Pyx_PyObject_Append(__pyx_t_4, __pyx_t_19); if (unlikely(__pyx_t_27 == ((int)-1))) __PYX_ERR(2, 52, __pyx_L40_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 219, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); - __Pyx_GetModuleGlobalName(__pyx_t_19, __pyx_mstate_global->__pyx_n_u_ARRAY_TYPES); if (unlikely(!__pyx_t_19)) __PYX_ERR(2, 53, __pyx_L40_error) - __Pyx_GOTREF(__pyx_t_19); - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_polars); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 53, __pyx_L40_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_Series); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 53, __pyx_L40_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_27 = __Pyx_PyObject_Append(__pyx_t_19, __pyx_t_6); if (unlikely(__pyx_t_27 == ((int)-1))) __PYX_ERR(2, 53, __pyx_L40_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_5 = PyTuple_Pack(1, __pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 217, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_459stream_ADR, 0, __pyx_mstate_global->__pyx_n_u_stream_ADR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[255])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 217, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ADR, __pyx_t_12) < (0)) __PYX_ERR(5, 217, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_polars); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 54, __pyx_L40_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_DataFrame); if (unlikely(!__pyx_t_19)) __PYX_ERR(2, 54, __pyx_L40_error) - __Pyx_GOTREF(__pyx_t_19); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME, __pyx_t_19) < (0)) __PYX_ERR(2, 54, __pyx_L40_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 251, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); - __Pyx_GetModuleGlobalName(__pyx_t_19, __pyx_mstate_global->__pyx_n_u_polars); if (unlikely(!__pyx_t_19)) __PYX_ERR(2, 55, __pyx_L40_error) - __Pyx_GOTREF(__pyx_t_19); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_19, __pyx_mstate_global->__pyx_n_u_Series); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 55, __pyx_L40_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_POLARS_SERIES, __pyx_t_6) < (0)) __PYX_ERR(2, 55, __pyx_L40_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_5 = PyTuple_Pack(1, __pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 249, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_461stream_ADX, 0, __pyx_mstate_global->__pyx_n_u_stream_ADX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[256])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 249, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ADX, __pyx_t_12) < (0)) __PYX_ERR(5, 249, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - } - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0; - __Pyx_XDECREF(__pyx_t_25); __pyx_t_25 = 0; - goto __pyx_L45_try_end; - __pyx_L40_error:; - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; - __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; - __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; - __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; - __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; - __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; - __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_XDECREF(__pyx_t_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_8); __pyx_t_8 = 0; - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 286, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); - __pyx_t_23 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ImportError)))); - if (__pyx_t_23) { - __Pyx_AddTraceback("talib._ta_lib", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_19, &__pyx_t_4) < 0) __PYX_ERR(2, 56, __pyx_L42_except_error) - __Pyx_XGOTREF(__pyx_t_6); - __Pyx_XGOTREF(__pyx_t_19); - __Pyx_XGOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_import_error, __pyx_t_19) < (0)) __PYX_ERR(2, 56, __pyx_L42_except_error) + __pyx_t_5 = PyTuple_Pack(1, __pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 284, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_463stream_ADXR, 0, __pyx_mstate_global->__pyx_n_u_stream_ADXR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[257])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 284, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ADXR, __pyx_t_12) < (0)) __PYX_ERR(5, 284, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_29, &__pyx_t_28, &__pyx_t_26); - __Pyx_XGOTREF(__pyx_t_29); - __Pyx_XGOTREF(__pyx_t_28); - __Pyx_XGOTREF(__pyx_t_26); - /*try:*/ { + __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 321, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 321, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); - __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_mstate_global->__pyx_n_u_import_error); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 58, __pyx_L48_error) - __Pyx_GOTREF(__pyx_t_15); - __pyx_t_32 = __Pyx_PyExc_ModuleNotFoundError_Check(__pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - __pyx_t_31 = (!__pyx_t_32); - if (!__pyx_t_31) { - } else { - __pyx_t_30 = __pyx_t_31; - goto __pyx_L57_bool_binop_done; - } - __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_mstate_global->__pyx_n_u_import_error); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 58, __pyx_L48_error) - __Pyx_GOTREF(__pyx_t_15); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 58, __pyx_L48_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - __pyx_t_31 = (__Pyx_PyUnicode_Equals(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_polars, Py_NE)); if (unlikely((__pyx_t_31 < 0))) __PYX_ERR(2, 58, __pyx_L48_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_30 = __pyx_t_31; - __pyx_L57_bool_binop_done:; - if (unlikely(__pyx_t_30)) { - - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_import_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 60, __pyx_L48_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, 60, __pyx_L48_error) + __pyx_t_3 = PyTuple_Pack(2, __pyx_t_12, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 319, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_465stream_AO, 0, __pyx_mstate_global->__pyx_n_u_stream_AO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[258])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 319, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_AO, __pyx_t_5) < (0)) __PYX_ERR(5, 319, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - } + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 354, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 354, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_12 = __Pyx_PyLong_From_int(((int)1)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 354, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); - } - __Pyx_XDECREF(__pyx_t_29); __pyx_t_29 = 0; - __Pyx_XDECREF(__pyx_t_28); __pyx_t_28 = 0; - __Pyx_XDECREF(__pyx_t_26); __pyx_t_26 = 0; - goto __pyx_L55_try_end; - __pyx_L48_error:; - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; - __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; - __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; - __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; - __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; - __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = PyTuple_Pack(3, __pyx_t_5, __pyx_t_3, __pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 352, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_467stream_APO, 0, __pyx_mstate_global->__pyx_n_u_stream_APO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[259])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 352, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_9); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_APO, __pyx_t_12) < (0)) __PYX_ERR(5, 352, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_23 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_NameError)))); - if (__pyx_t_23) { - __Pyx_ErrRestore(0,0,0); - goto __pyx_L49_exception_handled; - } - goto __pyx_L50_except_error; + __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 385, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); - __pyx_L50_except_error:; - __Pyx_XGIVEREF(__pyx_t_29); - __Pyx_XGIVEREF(__pyx_t_28); - __Pyx_XGIVEREF(__pyx_t_26); - __Pyx_ExceptionReset(__pyx_t_29, __pyx_t_28, __pyx_t_26); - goto __pyx_L42_except_error; - __pyx_L49_exception_handled:; - __Pyx_XGIVEREF(__pyx_t_29); - __Pyx_XGIVEREF(__pyx_t_28); - __Pyx_XGIVEREF(__pyx_t_26); - __Pyx_ExceptionReset(__pyx_t_29, __pyx_t_28, __pyx_t_26); - __pyx_L55_try_end:; - } + __pyx_t_9 = PyTuple_Pack(1, __pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 383, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_469stream_AROON, 0, __pyx_mstate_global->__pyx_n_u_stream_AROON, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[260])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 383, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_9); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_AROON, __pyx_t_12) < (0)) __PYX_ERR(5, 383, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME, Py_None) < (0)) __PYX_ERR(2, 65, __pyx_L42_except_error) + __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 420, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_POLARS_SERIES, Py_None) < (0)) __PYX_ERR(2, 66, __pyx_L42_except_error) - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - goto __pyx_L41_exception_handled; - } - goto __pyx_L42_except_error; + __pyx_t_9 = PyTuple_Pack(1, __pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 418, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_471stream_AROONOSC, 0, __pyx_mstate_global->__pyx_n_u_stream_AROONOSC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[261])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 418, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_9); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_AROONOSC, __pyx_t_12) < (0)) __PYX_ERR(5, 418, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_L42_except_error:; - __Pyx_XGIVEREF(__pyx_t_1); - __Pyx_XGIVEREF(__pyx_t_24); - __Pyx_XGIVEREF(__pyx_t_25); - __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_24, __pyx_t_25); - goto __pyx_L1_error; - __pyx_L41_exception_handled:; - __Pyx_XGIVEREF(__pyx_t_1); - __Pyx_XGIVEREF(__pyx_t_24); - __Pyx_XGIVEREF(__pyx_t_25); - __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_24, __pyx_t_25); - __pyx_L45_try_end:; - } + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_473stream_ASIN, 0, __pyx_mstate_global->__pyx_n_u_stream_ASIN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[262])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 450, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ASIN, __pyx_t_12) < (0)) __PYX_ERR(5, 450, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 68, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_19 = __Pyx_PySequence_Tuple(__pyx_t_4); if (unlikely(!__pyx_t_19)) __PYX_ERR(2, 68, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_INPUT_ARRAYS_TYPES, __pyx_t_19) < (0)) __PYX_ERR(2, 68, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_475stream_ATAN, 0, __pyx_mstate_global->__pyx_n_u_stream_ATAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[263])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 477, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ATAN, __pyx_t_12) < (0)) __PYX_ERR(5, 477, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_19, __pyx_mstate_global->__pyx_n_u_ARRAY_TYPES); if (unlikely(!__pyx_t_19)) __PYX_ERR(2, 69, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __pyx_t_4 = __Pyx_PySequence_Tuple(__pyx_t_19); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 69, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ARRAY_TYPES, __pyx_t_4) < (0)) __PYX_ERR(2, 69, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 506, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_sys); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 72, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_version); if (unlikely(!__pyx_t_19)) __PYX_ERR(2, 72, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = PyObject_RichCompare(__pyx_t_19, __pyx_mstate_global->__pyx_kp_u_3, Py_GE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 72, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_30 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_30 < 0))) __PYX_ERR(2, 72, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (__pyx_t_30) { + __pyx_t_9 = PyTuple_Pack(1, __pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 504, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_477stream_ATR, 0, __pyx_mstate_global->__pyx_n_u_stream_ATR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[264])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 504, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_9); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ATR, __pyx_t_12) < (0)) __PYX_ERR(5, 504, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_341str2bytes, 0, __pyx_mstate_global->__pyx_n_u_str2bytes, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[172])); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 74, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_str2bytes, __pyx_t_4) < (0)) __PYX_ERR(2, 74, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 541, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_343bytes2str, 0, __pyx_mstate_global->__pyx_n_u_bytes2str, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[173])); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 77, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_bytes2str, __pyx_t_4) < (0)) __PYX_ERR(2, 77, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_9 = PyTuple_Pack(1, __pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 539, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_479stream_AVGDEV, 0, __pyx_mstate_global->__pyx_n_u_stream_AVGDEV, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[265])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 539, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_9); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_AVGDEV, __pyx_t_12) < (0)) __PYX_ERR(5, 539, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - goto __pyx_L61; - } + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_481stream_AVGPRICE, 0, __pyx_mstate_global->__pyx_n_u_stream_AVGPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[266])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 568, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_AVGPRICE, __pyx_t_12) < (0)) __PYX_ERR(5, 568, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - /*else*/ { - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_345str2bytes, 0, __pyx_mstate_global->__pyx_n_u_str2bytes, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[174])); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 82, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_str2bytes, __pyx_t_4) < (0)) __PYX_ERR(2, 82, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 606, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __pyx_t_9 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 606, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_3 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 606, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 606, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_347bytes2str, 0, __pyx_mstate_global->__pyx_n_u_bytes2str, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[175])); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 85, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_bytes2str, __pyx_t_4) < (0)) __PYX_ERR(2, 85, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - } - __pyx_L61:; + __pyx_t_11 = PyTuple_Pack(4, __pyx_t_12, __pyx_t_9, __pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 604, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_483stream_BBANDS, 0, __pyx_mstate_global->__pyx_n_u_stream_BBANDS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[267])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 604, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_BBANDS, __pyx_t_5) < (0)) __PYX_ERR(5, 604, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_PEP560_update_bases(__pyx_mstate_global->__pyx_tuple[8]); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 88, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_19 = __Pyx_CalculateMetaclass(NULL, __pyx_t_4); if (unlikely(!__pyx_t_19)) __PYX_ERR(2, 88, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __pyx_t_6 = __Pyx_Py3MetaclassPrepare(__pyx_t_19, __pyx_t_4, __pyx_mstate_global->__pyx_n_u_Function, __pyx_mstate_global->__pyx_n_u_Function, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_kp_u_This_is_a_pythonic_wrapper_arou); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 88, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (__pyx_t_4 != __pyx_mstate_global->__pyx_tuple[8]) { - if (unlikely((PyDict_SetItemString(__pyx_t_6, "__orig_bases__", __pyx_mstate_global->__pyx_tuple[8]) < 0))) __PYX_ERR(2, 88, __pyx_L1_error) - } + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 644, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_1__init__, 0, __pyx_mstate_global->__pyx_n_u_Function___init, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[176])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 117, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_11 = PyTuple_Pack(1, __pyx_t_5); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 642, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_485stream_BETA, 0, __pyx_mstate_global->__pyx_n_u_stream_BETA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[268])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 642, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_3) < (0)) __PYX_ERR(2, 117, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_BETA, __pyx_t_5) < (0)) __PYX_ERR(5, 642, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_15 = NULL; - __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_3__local, 0, __pyx_mstate_global->__pyx_n_u_Function___local, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[177])); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 130, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_487stream_BOP, 0, __pyx_mstate_global->__pyx_n_u_stream_BOP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[269])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 675, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_8); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __pyx_t_7 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_15, __pyx_t_8}; - __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_property, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 130, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - } - if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_Function__local, __pyx_t_3) < (0)) __PYX_ERR(2, 130, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_BOP, __pyx_t_5) < (0)) __PYX_ERR(5, 675, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_8 = NULL; - __pyx_t_15 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_5info, 0, __pyx_mstate_global->__pyx_n_u_Function_info, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[178])); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 172, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 713, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + + __pyx_t_11 = PyTuple_Pack(1, __pyx_t_5); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 711, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_489stream_CCI, 0, __pyx_mstate_global->__pyx_n_u_stream_CCI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[270])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 711, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_15); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __pyx_t_7 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_15}; - __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_property, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 172, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - } - if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_info, __pyx_t_3) < (0)) __PYX_ERR(2, 172, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CCI, __pyx_t_5) < (0)) __PYX_ERR(5, 711, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_15 = NULL; - __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_7function_flags, 0, __pyx_mstate_global->__pyx_n_u_Function_function_flags, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[179])); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 179, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_491stream_CDL2CROWS, 0, __pyx_mstate_global->__pyx_n_u_stream_CDL2CROWS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[271])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 746, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_8); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __pyx_t_7 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_15, __pyx_t_8}; - __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_property, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 179, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - } - if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_function_flags, __pyx_t_3) < (0)) __PYX_ERR(2, 179, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDL2CROWS, __pyx_t_5) < (0)) __PYX_ERR(5, 746, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_8 = NULL; - __pyx_t_15 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_9output_flags, 0, __pyx_mstate_global->__pyx_n_u_Function_output_flags, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[180])); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 186, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_493stream_CDL3BLACKCROWS, 0, __pyx_mstate_global->__pyx_n_u_stream_CDL3BLACKCROWS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[272])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 782, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_15); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __pyx_t_7 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_15}; - __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_property, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 186, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - } - if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_output_flags, __pyx_t_3) < (0)) __PYX_ERR(2, 186, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDL3BLACKCROWS, __pyx_t_5) < (0)) __PYX_ERR(5, 782, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_11get_input_names, 0, __pyx_mstate_global->__pyx_n_u_Function_get_input_names, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[181])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 193, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_495stream_CDL3INSIDE, 0, __pyx_mstate_global->__pyx_n_u_stream_CDL3INSIDE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[273])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 818, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_get_input_names, __pyx_t_3) < (0)) __PYX_ERR(2, 193, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDL3INSIDE, __pyx_t_5) < (0)) __PYX_ERR(5, 818, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_13set_input_names, 0, __pyx_mstate_global->__pyx_n_u_Function_set_input_names, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[182])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 204, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_497stream_CDL3LINESTRIKE, 0, __pyx_mstate_global->__pyx_n_u_stream_CDL3LINESTRIKE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[274])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 854, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_set_input_names, __pyx_t_3) < (0)) __PYX_ERR(2, 204, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDL3LINESTRIKE, __pyx_t_5) < (0)) __PYX_ERR(5, 854, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_15 = NULL; - __pyx_t_8 = PyObject_GetItem(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_get_input_names); - if (unlikely(!__pyx_t_8)) { - PyErr_Clear(); - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_get_input_names); - } - if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 214, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_2 = PyObject_GetItem(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_set_input_names); - if (unlikely(!__pyx_t_2)) { - PyErr_Clear(); - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_set_input_names); - } - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 214, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_7 = 1; - { - PyObject *__pyx_callargs[3] = {__pyx_t_15, __pyx_t_8, __pyx_t_2}; - __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_property, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 214, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - } - if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_input_names, __pyx_t_3) < (0)) __PYX_ERR(2, 214, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_499stream_CDL3OUTSIDE, 0, __pyx_mstate_global->__pyx_n_u_stream_CDL3OUTSIDE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[275])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 890, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDL3OUTSIDE, __pyx_t_5) < (0)) __PYX_ERR(5, 890, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_15get_input_arrays, 0, __pyx_mstate_global->__pyx_n_u_Function_get_input_arrays, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[183])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 216, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_501stream_CDL3STARSINSOUTH, 0, __pyx_mstate_global->__pyx_n_u_stream_CDL3STARSINSOUTH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[276])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 926, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_get_input_arrays, __pyx_t_3) < (0)) __PYX_ERR(2, 216, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDL3STARSINSOUTH, __pyx_t_5) < (0)) __PYX_ERR(5, 926, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_17set_input_arrays, 0, __pyx_mstate_global->__pyx_n_u_Function_set_input_arrays, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[184])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 227, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_503stream_CDL3WHITESOLDIERS, 0, __pyx_mstate_global->__pyx_n_u_stream_CDL3WHITESOLDIERS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[277])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 962, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_set_input_arrays, __pyx_t_3) < (0)) __PYX_ERR(2, 227, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDL3WHITESOLDIERS, __pyx_t_5) < (0)) __PYX_ERR(5, 962, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_2 = NULL; - __pyx_t_8 = PyObject_GetItem(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_get_input_arrays); - if (unlikely(!__pyx_t_8)) { - PyErr_Clear(); - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_get_input_arrays); - } - if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 274, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_15 = PyObject_GetItem(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_set_input_arrays); - if (unlikely(!__pyx_t_15)) { - PyErr_Clear(); - __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_mstate_global->__pyx_n_u_set_input_arrays); - } - if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 274, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __pyx_t_7 = 1; - { - PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_t_8, __pyx_t_15}; - __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_property, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 274, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - } - if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_input_arrays, __pyx_t_3) < (0)) __PYX_ERR(2, 274, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1000, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_19get_parameters, 0, __pyx_mstate_global->__pyx_n_u_Function_get_parameters, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[185])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 276, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_11 = PyTuple_Pack(1, __pyx_t_5); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 998, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_505stream_CDLABANDONEDBABY, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLABANDONEDBABY, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[278])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 998, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_get_parameters, __pyx_t_3) < (0)) __PYX_ERR(2, 276, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLABANDONEDBABY, __pyx_t_5) < (0)) __PYX_ERR(5, 998, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_21set_parameters, 0, __pyx_mstate_global->__pyx_n_u_Function_set_parameters, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[186])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 286, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_507stream_CDLADVANCEBLOCK, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLADVANCEBLOCK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[279])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1036, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[9]); - if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_set_parameters, __pyx_t_3) < (0)) __PYX_ERR(2, 286, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLADVANCEBLOCK, __pyx_t_5) < (0)) __PYX_ERR(5, 1036, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_15 = NULL; - __pyx_t_8 = PyObject_GetItem(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_get_parameters); - if (unlikely(!__pyx_t_8)) { - PyErr_Clear(); - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_get_parameters); - } - if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 299, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_2 = PyObject_GetItem(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_set_parameters); - if (unlikely(!__pyx_t_2)) { - PyErr_Clear(); - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_set_parameters); - } - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 299, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_7 = 1; - { - PyObject *__pyx_callargs[3] = {__pyx_t_15, __pyx_t_8, __pyx_t_2}; - __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_property, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 299, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - } - if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_parameters, __pyx_t_3) < (0)) __PYX_ERR(2, 299, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_509stream_CDLBELTHOLD, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLBELTHOLD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[280])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1072, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLBELTHOLD, __pyx_t_5) < (0)) __PYX_ERR(5, 1072, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_23set_function_args, 0, __pyx_mstate_global->__pyx_n_u_Function_set_function_args, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[187])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 301, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_511stream_CDLBREAKAWAY, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLBREAKAWAY, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[281])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1108, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_set_function_args, __pyx_t_3) < (0)) __PYX_ERR(2, 301, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLBREAKAWAY, __pyx_t_5) < (0)) __PYX_ERR(5, 1108, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_2 = NULL; - __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_25lookback, 0, __pyx_mstate_global->__pyx_n_u_Function_lookback, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[188])); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 336, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_513stream_CDLCLOSINGMARUBOZU, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLCLOSINGMARUBOZU, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[282])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1144, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_8); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __pyx_t_7 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_8}; - __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_property, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 336, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - } - if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_lookback, __pyx_t_3) < (0)) __PYX_ERR(2, 336, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLCLOSINGMARUBOZU, __pyx_t_5) < (0)) __PYX_ERR(5, 1144, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_8 = NULL; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_27output_names, 0, __pyx_mstate_global->__pyx_n_u_Function_output_names, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[189])); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 357, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_515stream_CDLCONCEALBABYSWALL, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLCONCEALBABYSWALL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[283])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1180, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __pyx_t_7 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_2}; - __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_property, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 357, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - } - if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_output_names, __pyx_t_3) < (0)) __PYX_ERR(2, 357, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLCONCEALBABYSWALL, __pyx_t_5) < (0)) __PYX_ERR(5, 1180, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_2 = NULL; - __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_29outputs, 0, __pyx_mstate_global->__pyx_n_u_Function_outputs, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[190])); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 367, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_517stream_CDLCOUNTERATTACK, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLCOUNTERATTACK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[284])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1216, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_8); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __pyx_t_7 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_8}; - __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_property, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 367, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - } - if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_outputs, __pyx_t_3) < (0)) __PYX_ERR(2, 367, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLCOUNTERATTACK, __pyx_t_5) < (0)) __PYX_ERR(5, 1216, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_31run, 0, __pyx_mstate_global->__pyx_n_u_Function_run, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[191])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 399, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = PyFloat_FromDouble(((double)0.5)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1254, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + + __pyx_t_11 = PyTuple_Pack(1, __pyx_t_5); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 1252, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_519stream_CDLDARKCLOUDCOVER, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLDARKCLOUDCOVER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[285])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1252, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[9]); - if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_run, __pyx_t_3) < (0)) __PYX_ERR(2, 399, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLDARKCLOUDCOVER, __pyx_t_5) < (0)) __PYX_ERR(5, 1252, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_33__call__, 0, __pyx_mstate_global->__pyx_n_u_Function___call, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[192])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 411, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_521stream_CDLDOJI, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLDOJI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[286])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1290, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_call, __pyx_t_3) < (0)) __PYX_ERR(2, 411, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLDOJI, __pyx_t_5) < (0)) __PYX_ERR(5, 1290, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_523stream_CDLDOJISTAR, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLDOJISTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[287])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1326, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLDOJISTAR, __pyx_t_5) < (0)) __PYX_ERR(5, 1326, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_525stream_CDLDRAGONFLYDOJI, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLDRAGONFLYDOJI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[288])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1362, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLDRAGONFLYDOJI, __pyx_t_5) < (0)) __PYX_ERR(5, 1362, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_35__input_price_series_names, 0, __pyx_mstate_global->__pyx_n_u_Function___input_price_series_na, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[193])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 477, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_527stream_CDLENGULFING, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLENGULFING, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[289])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1398, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_Function__input_price_series_na, __pyx_t_3) < (0)) __PYX_ERR(2, 477, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLENGULFING, __pyx_t_5) < (0)) __PYX_ERR(5, 1398, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_37__call_function, 0, __pyx_mstate_global->__pyx_n_u_Function___call_function, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[194])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 489, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1436, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + + __pyx_t_11 = PyTuple_Pack(1, __pyx_t_5); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 1434, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_529stream_CDLEVENINGDOJISTAR, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLEVENINGDOJISTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[290])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1434, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_Function__call_function, __pyx_t_3) < (0)) __PYX_ERR(2, 489, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLEVENINGDOJISTAR, __pyx_t_5) < (0)) __PYX_ERR(5, 1434, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_39__check_opt_input_value, 0, __pyx_mstate_global->__pyx_n_u_Function___check_opt_input_value, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[195])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 520, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1474, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + + __pyx_t_11 = PyTuple_Pack(1, __pyx_t_5); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 1472, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_531stream_CDLEVENINGSTAR, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLEVENINGSTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[291])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1472, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_Function__check_opt_input_value, __pyx_t_3) < (0)) __PYX_ERR(2, 520, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLEVENINGSTAR, __pyx_t_5) < (0)) __PYX_ERR(5, 1472, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_41__get_opt_input_value, 0, __pyx_mstate_global->__pyx_n_u_Function___get_opt_input_value, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[196])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 535, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_533stream_CDLGAPSIDESIDEWHITE, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLGAPSIDESIDEWHITE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[292])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1510, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_Function__get_opt_input_value, __pyx_t_3) < (0)) __PYX_ERR(2, 535, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLGAPSIDESIDEWHITE, __pyx_t_5) < (0)) __PYX_ERR(5, 1510, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_43__repr__, 0, __pyx_mstate_global->__pyx_n_u_Function___repr, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[197])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 545, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_535stream_CDLGRAVESTONEDOJI, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLGRAVESTONEDOJI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[293])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1546, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_repr, __pyx_t_3) < (0)) __PYX_ERR(2, 545, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLGRAVESTONEDOJI, __pyx_t_5) < (0)) __PYX_ERR(5, 1546, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_45__unicode__, 0, __pyx_mstate_global->__pyx_n_u_Function___unicode, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[198])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 548, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_537stream_CDLHAMMER, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLHAMMER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[294])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1582, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_unicode, __pyx_t_3) < (0)) __PYX_ERR(2, 548, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLHAMMER, __pyx_t_5) < (0)) __PYX_ERR(5, 1582, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_47__str__, 0, __pyx_mstate_global->__pyx_n_u_Function___str, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[199])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 551, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_539stream_CDLHANGINGMAN, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLHANGINGMAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[295])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1618, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_str, __pyx_t_3) < (0)) __PYX_ERR(2, 551, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLHANGINGMAN, __pyx_t_5) < (0)) __PYX_ERR(5, 1618, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_3 = __Pyx_Py3ClassCreate(__pyx_t_19, __pyx_mstate_global->__pyx_n_u_Function, __pyx_t_4, __pyx_t_6, NULL, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 88, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_541stream_CDLHARAMI, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLHARAMI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[296])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1654, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_Function, __pyx_t_3) < (0)) __PYX_ERR(2, 88, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLHARAMI, __pyx_t_5) < (0)) __PYX_ERR(5, 1654, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_349_ta_getGroupTable, 0, __pyx_mstate_global->__pyx_n_u_ta_getGroupTable, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[200])); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 565, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_543stream_CDLHARAMICROSS, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLHARAMICROSS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[297])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1690, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_getGroupTable, __pyx_t_4) < (0)) __PYX_ERR(2, 565, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLHARAMICROSS, __pyx_t_5) < (0)) __PYX_ERR(5, 1690, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_351_ta_getFuncTable, 0, __pyx_mstate_global->__pyx_n_u_ta_getFuncTable, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[201])); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 577, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_545stream_CDLHIGHWAVE, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLHIGHWAVE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[298])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1726, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_getFuncTable, __pyx_t_4) < (0)) __PYX_ERR(2, 577, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLHIGHWAVE, __pyx_t_5) < (0)) __PYX_ERR(5, 1726, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_353__get_flags, 0, __pyx_mstate_global->__pyx_n_u_get_flags, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[202])); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 589, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_547stream_CDLHIKKAKE, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLHIKKAKE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[299])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1762, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_get_flags, __pyx_t_4) < (0)) __PYX_ERR(2, 589, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - __pyx_t_4 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 615, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_int_16777216, __pyx_mstate_global->__pyx_kp_u_Output_scale_same_as_input) < (0)) __PYX_ERR(2, 615, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_int_67108864, __pyx_mstate_global->__pyx_kp_u_Output_is_over_volume) < (0)) __PYX_ERR(2, 615, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_int_134217728, __pyx_mstate_global->__pyx_kp_u_Function_has_an_unstable_period) < (0)) __PYX_ERR(2, 615, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_int_268435456, __pyx_mstate_global->__pyx_kp_u_Output_is_a_candlestick) < (0)) __PYX_ERR(2, 615, __pyx_L1_error) - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TA_FUNC_FLAGS, __pyx_t_4) < (0)) __PYX_ERR(2, 614, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - __pyx_t_4 = __Pyx_PyDict_NewPresized(7); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 623, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_int_1, __pyx_mstate_global->__pyx_n_u_open) < (0)) __PYX_ERR(2, 623, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_int_2, __pyx_mstate_global->__pyx_n_u_high) < (0)) __PYX_ERR(2, 623, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_int_4, __pyx_mstate_global->__pyx_n_u_low) < (0)) __PYX_ERR(2, 623, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_int_8, __pyx_mstate_global->__pyx_n_u_close) < (0)) __PYX_ERR(2, 623, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_int_16, __pyx_mstate_global->__pyx_n_u_volume) < (0)) __PYX_ERR(2, 623, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_int_32, __pyx_mstate_global->__pyx_n_u_openInterest) < (0)) __PYX_ERR(2, 623, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_int_64, __pyx_mstate_global->__pyx_n_u_timeStamp) < (0)) __PYX_ERR(2, 623, __pyx_L1_error) - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TA_INPUT_FLAGS, __pyx_t_4) < (0)) __PYX_ERR(2, 622, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - __pyx_t_4 = __Pyx_PyDict_NewPresized(13); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 633, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_int_1, __pyx_mstate_global->__pyx_n_u_Line) < (0)) __PYX_ERR(2, 633, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_int_2, __pyx_mstate_global->__pyx_kp_u_Dotted_Line) < (0)) __PYX_ERR(2, 633, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_int_4, __pyx_mstate_global->__pyx_kp_u_Dashed_Line) < (0)) __PYX_ERR(2, 633, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_int_8, __pyx_mstate_global->__pyx_n_u_Dot) < (0)) __PYX_ERR(2, 633, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_int_16, __pyx_mstate_global->__pyx_n_u_Histogram) < (0)) __PYX_ERR(2, 633, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_int_32, __pyx_mstate_global->__pyx_kp_u_Pattern_Bool) < (0)) __PYX_ERR(2, 633, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_int_64, __pyx_mstate_global->__pyx_kp_u_Bull_Bear_Pattern_Bearish_0_Neut) < (0)) __PYX_ERR(2, 633, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_int_128, __pyx_mstate_global->__pyx_kp_u_Strength_Pattern_200_100_Bearish) < (0)) __PYX_ERR(2, 633, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_int_256, __pyx_mstate_global->__pyx_kp_u_Output_can_be_positive) < (0)) __PYX_ERR(2, 633, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_int_512, __pyx_mstate_global->__pyx_kp_u_Output_can_be_negative) < (0)) __PYX_ERR(2, 633, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_int_1024, __pyx_mstate_global->__pyx_kp_u_Output_can_be_zero) < (0)) __PYX_ERR(2, 633, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_int_2048, __pyx_mstate_global->__pyx_kp_u_Values_represent_an_upper_limit) < (0)) __PYX_ERR(2, 633, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_int_4096, __pyx_mstate_global->__pyx_kp_u_Values_represent_a_lower_limit) < (0)) __PYX_ERR(2, 633, __pyx_L1_error) - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TA_OUTPUT_FLAGS, __pyx_t_4) < (0)) __PYX_ERR(2, 632, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLHIKKAKE, __pyx_t_5) < (0)) __PYX_ERR(5, 1762, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_355_ta_getFuncInfo, 0, __pyx_mstate_global->__pyx_n_u_ta_getFuncInfo, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[203])); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 648, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_549stream_CDLHIKKAKEMOD, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLHIKKAKEMOD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[300])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1798, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_getFuncInfo, __pyx_t_4) < (0)) __PYX_ERR(2, 648, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLHIKKAKEMOD, __pyx_t_5) < (0)) __PYX_ERR(5, 1798, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_357_ta_getInputParameterInfo, 0, __pyx_mstate_global->__pyx_n_u_ta_getInputParameterInfo, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[204])); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 667, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_551stream_CDLHOMINGPIGEON, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLHOMINGPIGEON, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[301])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1834, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_getInputParameterInfo, __pyx_t_4) < (0)) __PYX_ERR(2, 667, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLHOMINGPIGEON, __pyx_t_5) < (0)) __PYX_ERR(5, 1834, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_359_ta_getOptInputParameterInfo, 0, __pyx_mstate_global->__pyx_n_u_ta_getOptInputParameterInfo, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[205])); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 688, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_553stream_CDLIDENTICAL3CROWS, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLIDENTICAL3CROWS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[302])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1870, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_getOptInputParameterInfo, __pyx_t_4) < (0)) __PYX_ERR(2, 688, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLIDENTICAL3CROWS, __pyx_t_5) < (0)) __PYX_ERR(5, 1870, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_361_ta_getOutputParameterInfo, 0, __pyx_mstate_global->__pyx_n_u_ta_getOutputParameterInfo, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[206])); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 710, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_555stream_CDLINNECK, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLINNECK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[303])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1906, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_getOutputParameterInfo, __pyx_t_4) < (0)) __PYX_ERR(2, 710, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLINNECK, __pyx_t_5) < (0)) __PYX_ERR(5, 1906, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_363_get_defaults_and_docs, 0, __pyx_mstate_global->__pyx_n_u_get_defaults_and_docs, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[207])); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 730, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_557stream_CDLINVERTEDHAMMER, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLINVERTEDHAMMER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[304])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1942, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_get_defaults_and_docs, __pyx_t_4) < (0)) __PYX_ERR(2, 730, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - __pyx_t_23 = __pyx_f_5numpy_import_array(); if (unlikely(__pyx_t_23 == ((int)-1))) __PYX_ERR(5, 7, __pyx_L1_error) - - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 11, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLINVERTEDHAMMER, __pyx_t_5) < (0)) __PYX_ERR(5, 1942, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_19 = PyTuple_Pack(1, __pyx_t_4); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 9, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_365stream_ACCBANDS, 0, __pyx_mstate_global->__pyx_n_u_stream_ACCBANDS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[208])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 9, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_559stream_CDLKICKING, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLKICKING, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[305])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1978, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_19); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ACCBANDS, __pyx_t_4) < (0)) __PYX_ERR(5, 9, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLKICKING, __pyx_t_5) < (0)) __PYX_ERR(5, 1978, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_367stream_ACOS, 0, __pyx_mstate_global->__pyx_n_u_stream_ACOS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[209])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 50, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_561stream_CDLKICKINGBYLENGTH, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLKICKINGBYLENGTH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[306])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2014, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ACOS, __pyx_t_4) < (0)) __PYX_ERR(5, 50, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLKICKINGBYLENGTH, __pyx_t_5) < (0)) __PYX_ERR(5, 2014, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_369stream_AD, 0, __pyx_mstate_global->__pyx_n_u_stream_AD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[210])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 77, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_563stream_CDLLADDERBOTTOM, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLLADDERBOTTOM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[307])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2050, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_AD, __pyx_t_4) < (0)) __PYX_ERR(5, 77, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLLADDERBOTTOM, __pyx_t_5) < (0)) __PYX_ERR(5, 2050, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_371stream_ADD, 0, __pyx_mstate_global->__pyx_n_u_stream_ADD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[211])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 113, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_565stream_CDLLONGLEGGEDDOJI, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLLONGLEGGEDDOJI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[308])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2086, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ADD, __pyx_t_4) < (0)) __PYX_ERR(5, 113, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 146, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 146, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLLONGLEGGEDDOJI, __pyx_t_5) < (0)) __PYX_ERR(5, 2086, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_6 = PyTuple_Pack(2, __pyx_t_4, __pyx_t_19); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 144, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_373stream_ADOSC, 0, __pyx_mstate_global->__pyx_n_u_stream_ADOSC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[212])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 144, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_567stream_CDLLONGLINE, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLLONGLINE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[309])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2122, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_6); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ADOSC, __pyx_t_19) < (0)) __PYX_ERR(5, 144, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - - __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 185, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLLONGLINE, __pyx_t_5) < (0)) __PYX_ERR(5, 2122, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_6 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 183, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_375stream_ADX, 0, __pyx_mstate_global->__pyx_n_u_stream_ADX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[213])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 183, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_569stream_CDLMARUBOZU, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLMARUBOZU, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[310])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2158, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_6); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ADX, __pyx_t_19) < (0)) __PYX_ERR(5, 183, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - - __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 220, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLMARUBOZU, __pyx_t_5) < (0)) __PYX_ERR(5, 2158, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_6 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 218, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_377stream_ADXR, 0, __pyx_mstate_global->__pyx_n_u_stream_ADXR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[214])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 218, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_571stream_CDLMATCHINGLOW, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLMATCHINGLOW, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[311])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2194, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_6); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ADXR, __pyx_t_19) < (0)) __PYX_ERR(5, 218, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLMATCHINGLOW, __pyx_t_5) < (0)) __PYX_ERR(5, 2194, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 255, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __pyx_t_6 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 255, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_4 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 255, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(((double)0.5)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2232, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); - __pyx_t_3 = PyTuple_Pack(3, __pyx_t_19, __pyx_t_6, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 253, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_379stream_APO, 0, __pyx_mstate_global->__pyx_n_u_stream_APO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[215])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 253, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_11 = PyTuple_Pack(1, __pyx_t_5); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 2230, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_573stream_CDLMATHOLD, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLMATHOLD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[312])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2230, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_APO, __pyx_t_4) < (0)) __PYX_ERR(5, 253, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLMATHOLD, __pyx_t_5) < (0)) __PYX_ERR(5, 2230, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 286, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2270, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); - __pyx_t_3 = PyTuple_Pack(1, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 284, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_381stream_AROON, 0, __pyx_mstate_global->__pyx_n_u_stream_AROON, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[216])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 284, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_11 = PyTuple_Pack(1, __pyx_t_5); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 2268, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_575stream_CDLMORNINGDOJISTAR, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLMORNINGDOJISTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[313])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2268, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_AROON, __pyx_t_4) < (0)) __PYX_ERR(5, 284, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLMORNINGDOJISTAR, __pyx_t_5) < (0)) __PYX_ERR(5, 2268, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 321, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2308, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); - __pyx_t_3 = PyTuple_Pack(1, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 319, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_383stream_AROONOSC, 0, __pyx_mstate_global->__pyx_n_u_stream_AROONOSC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[217])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 319, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_11 = PyTuple_Pack(1, __pyx_t_5); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 2306, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_577stream_CDLMORNINGSTAR, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLMORNINGSTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[314])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2306, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_AROONOSC, __pyx_t_4) < (0)) __PYX_ERR(5, 319, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLMORNINGSTAR, __pyx_t_5) < (0)) __PYX_ERR(5, 2306, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_385stream_ASIN, 0, __pyx_mstate_global->__pyx_n_u_stream_ASIN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[218])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 351, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_579stream_CDLONNECK, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLONNECK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[315])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2344, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ASIN, __pyx_t_4) < (0)) __PYX_ERR(5, 351, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLONNECK, __pyx_t_5) < (0)) __PYX_ERR(5, 2344, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_387stream_ATAN, 0, __pyx_mstate_global->__pyx_n_u_stream_ATAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[219])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 378, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_581stream_CDLPIERCING, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLPIERCING, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[316])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2380, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ATAN, __pyx_t_4) < (0)) __PYX_ERR(5, 378, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 407, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLPIERCING, __pyx_t_5) < (0)) __PYX_ERR(5, 2380, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_3 = PyTuple_Pack(1, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 405, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_389stream_ATR, 0, __pyx_mstate_global->__pyx_n_u_stream_ATR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[220])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 405, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_583stream_CDLRICKSHAWMAN, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLRICKSHAWMAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[317])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2416, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ATR, __pyx_t_4) < (0)) __PYX_ERR(5, 405, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLRICKSHAWMAN, __pyx_t_5) < (0)) __PYX_ERR(5, 2416, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_391stream_AVGPRICE, 0, __pyx_mstate_global->__pyx_n_u_stream_AVGPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[221])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 440, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_585stream_CDLRISEFALL3METHODS, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLRISEFALL3METHODS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[318])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2452, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_AVGPRICE, __pyx_t_4) < (0)) __PYX_ERR(5, 440, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 478, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLRISEFALL3METHODS, __pyx_t_5) < (0)) __PYX_ERR(5, 2452, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_3 = PyTuple_Pack(1, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 476, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_393stream_AVGDEV, 0, __pyx_mstate_global->__pyx_n_u_stream_AVGDEV, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[222])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 476, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_587stream_CDLSEPARATINGLINES, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLSEPARATINGLINES, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[319])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2488, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_AVGDEV, __pyx_t_4) < (0)) __PYX_ERR(5, 476, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 507, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 507, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_6 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 507, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_19 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 507, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLSEPARATINGLINES, __pyx_t_5) < (0)) __PYX_ERR(5, 2488, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_8 = PyTuple_Pack(4, __pyx_t_4, __pyx_t_3, __pyx_t_6, __pyx_t_19); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 505, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_395stream_BBANDS, 0, __pyx_mstate_global->__pyx_n_u_stream_BBANDS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[223])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 505, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_589stream_CDLSHOOTINGSTAR, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLSHOOTINGSTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[320])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2524, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_8); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_BBANDS, __pyx_t_19) < (0)) __PYX_ERR(5, 505, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - - __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 545, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLSHOOTINGSTAR, __pyx_t_5) < (0)) __PYX_ERR(5, 2524, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_8 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 543, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_397stream_BETA, 0, __pyx_mstate_global->__pyx_n_u_stream_BETA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[224])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 543, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_591stream_CDLSHORTLINE, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLSHORTLINE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[321])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2560, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_8); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_BETA, __pyx_t_19) < (0)) __PYX_ERR(5, 543, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLSHORTLINE, __pyx_t_5) < (0)) __PYX_ERR(5, 2560, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_399stream_BOP, 0, __pyx_mstate_global->__pyx_n_u_stream_BOP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[225])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 576, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_593stream_CDLSPINNINGTOP, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLSPINNINGTOP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[322])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2596, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_BOP, __pyx_t_19) < (0)) __PYX_ERR(5, 576, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - - __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 614, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLSPINNINGTOP, __pyx_t_5) < (0)) __PYX_ERR(5, 2596, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_8 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 612, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_401stream_CCI, 0, __pyx_mstate_global->__pyx_n_u_stream_CCI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[226])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 612, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_595stream_CDLSTALLEDPATTERN, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLSTALLEDPATTERN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[323])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2632, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_8); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CCI, __pyx_t_19) < (0)) __PYX_ERR(5, 612, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLSTALLEDPATTERN, __pyx_t_5) < (0)) __PYX_ERR(5, 2632, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_403stream_CDL2CROWS, 0, __pyx_mstate_global->__pyx_n_u_stream_CDL2CROWS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[227])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 647, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_597stream_CDLSTICKSANDWICH, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLSTICKSANDWICH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[324])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2668, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDL2CROWS, __pyx_t_19) < (0)) __PYX_ERR(5, 647, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLSTICKSANDWICH, __pyx_t_5) < (0)) __PYX_ERR(5, 2668, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_405stream_CDL3BLACKCROWS, 0, __pyx_mstate_global->__pyx_n_u_stream_CDL3BLACKCROWS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[228])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 683, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_599stream_CDLTAKURI, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLTAKURI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[325])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2704, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDL3BLACKCROWS, __pyx_t_19) < (0)) __PYX_ERR(5, 683, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLTAKURI, __pyx_t_5) < (0)) __PYX_ERR(5, 2704, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_407stream_CDL3INSIDE, 0, __pyx_mstate_global->__pyx_n_u_stream_CDL3INSIDE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[229])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 719, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_601stream_CDLTASUKIGAP, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLTASUKIGAP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[326])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2740, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDL3INSIDE, __pyx_t_19) < (0)) __PYX_ERR(5, 719, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLTASUKIGAP, __pyx_t_5) < (0)) __PYX_ERR(5, 2740, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_409stream_CDL3LINESTRIKE, 0, __pyx_mstate_global->__pyx_n_u_stream_CDL3LINESTRIKE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[230])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 755, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_603stream_CDLTHRUSTING, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLTHRUSTING, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[327])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2776, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDL3LINESTRIKE, __pyx_t_19) < (0)) __PYX_ERR(5, 755, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLTHRUSTING, __pyx_t_5) < (0)) __PYX_ERR(5, 2776, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_411stream_CDL3OUTSIDE, 0, __pyx_mstate_global->__pyx_n_u_stream_CDL3OUTSIDE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[231])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 791, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_605stream_CDLTRISTAR, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLTRISTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[328])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2812, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDL3OUTSIDE, __pyx_t_19) < (0)) __PYX_ERR(5, 791, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLTRISTAR, __pyx_t_5) < (0)) __PYX_ERR(5, 2812, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_413stream_CDL3STARSINSOUTH, 0, __pyx_mstate_global->__pyx_n_u_stream_CDL3STARSINSOUTH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[232])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 827, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_607stream_CDLUNIQUE3RIVER, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLUNIQUE3RIVER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[329])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2848, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDL3STARSINSOUTH, __pyx_t_19) < (0)) __PYX_ERR(5, 827, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLUNIQUE3RIVER, __pyx_t_5) < (0)) __PYX_ERR(5, 2848, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_415stream_CDL3WHITESOLDIERS, 0, __pyx_mstate_global->__pyx_n_u_stream_CDL3WHITESOLDIERS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[233])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 863, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_609stream_CDLUPSIDEGAP2CROWS, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLUPSIDEGAP2CROWS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[330])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2884, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDL3WHITESOLDIERS, __pyx_t_19) < (0)) __PYX_ERR(5, 863, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - - __pyx_t_19 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 901, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLUPSIDEGAP2CROWS, __pyx_t_5) < (0)) __PYX_ERR(5, 2884, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_8 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 899, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_417stream_CDLABANDONEDBABY, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLABANDONEDBABY, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[234])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 899, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_611stream_CDLXSIDEGAP3METHODS, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLXSIDEGAP3METHODS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[331])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2920, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_8); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLABANDONEDBABY, __pyx_t_19) < (0)) __PYX_ERR(5, 899, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLXSIDEGAP3METHODS, __pyx_t_5) < (0)) __PYX_ERR(5, 2920, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_419stream_CDLADVANCEBLOCK, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLADVANCEBLOCK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[235])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 937, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_613stream_CEIL, 0, __pyx_mstate_global->__pyx_n_u_stream_CEIL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[332])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2956, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLADVANCEBLOCK, __pyx_t_19) < (0)) __PYX_ERR(5, 937, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CEIL, __pyx_t_5) < (0)) __PYX_ERR(5, 2956, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_421stream_CDLBELTHOLD, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLBELTHOLD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[236])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 973, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLBELTHOLD, __pyx_t_19) < (0)) __PYX_ERR(5, 973, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2985, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_423stream_CDLBREAKAWAY, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLBREAKAWAY, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[237])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1009, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_11 = PyTuple_Pack(1, __pyx_t_5); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 2983, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_615stream_CMF, 0, __pyx_mstate_global->__pyx_n_u_stream_CMF, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[333])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2983, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLBREAKAWAY, __pyx_t_19) < (0)) __PYX_ERR(5, 1009, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CMF, __pyx_t_5) < (0)) __PYX_ERR(5, 2983, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_425stream_CDLCLOSINGMARUBOZU, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLCLOSINGMARUBOZU, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[238])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1045, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLCLOSINGMARUBOZU, __pyx_t_19) < (0)) __PYX_ERR(5, 1045, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3023, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_427stream_CDLCONCEALBABYSWALL, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLCONCEALBABYSWALL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[239])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1081, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_11 = PyTuple_Pack(1, __pyx_t_5); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3021, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_617stream_CMO, 0, __pyx_mstate_global->__pyx_n_u_stream_CMO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[334])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3021, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLCONCEALBABYSWALL, __pyx_t_19) < (0)) __PYX_ERR(5, 1081, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CMO, __pyx_t_5) < (0)) __PYX_ERR(5, 3021, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_429stream_CDLCOUNTERATTACK, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLCOUNTERATTACK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[240])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1117, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3052, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + + __pyx_t_11 = PyTuple_Pack(1, __pyx_t_5); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3050, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_619stream_CMOU, 0, __pyx_mstate_global->__pyx_n_u_stream_CMOU, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[335])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3050, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLCOUNTERATTACK, __pyx_t_19) < (0)) __PYX_ERR(5, 1117, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CMOU, __pyx_t_5) < (0)) __PYX_ERR(5, 3050, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_19 = PyFloat_FromDouble(((double)0.5)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1155, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3081, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3081, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3081, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); - __pyx_t_8 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 1153, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_431stream_CDLDARKCLOUDCOVER, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLDARKCLOUDCOVER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[241])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1153, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_9 = PyTuple_Pack(3, __pyx_t_5, __pyx_t_11, __pyx_t_3); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 3079, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_621stream_COPPOCK, 0, __pyx_mstate_global->__pyx_n_u_stream_COPPOCK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[336])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3079, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_8); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLDARKCLOUDCOVER, __pyx_t_19) < (0)) __PYX_ERR(5, 1153, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_9); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_COPPOCK, __pyx_t_3) < (0)) __PYX_ERR(5, 3079, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_433stream_CDLDOJI, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLDOJI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[242])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1191, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3112, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + __pyx_t_9 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 3110, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_623stream_CORREL, 0, __pyx_mstate_global->__pyx_n_u_stream_CORREL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[337])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3110, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLDOJI, __pyx_t_19) < (0)) __PYX_ERR(5, 1191, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_9); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CORREL, __pyx_t_3) < (0)) __PYX_ERR(5, 3110, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_435stream_CDLDOJISTAR, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLDOJISTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[243])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1227, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_625stream_COS, 0, __pyx_mstate_global->__pyx_n_u_stream_COS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[338])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3143, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLDOJISTAR, __pyx_t_19) < (0)) __PYX_ERR(5, 1227, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_COS, __pyx_t_3) < (0)) __PYX_ERR(5, 3143, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_437stream_CDLDRAGONFLYDOJI, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLDRAGONFLYDOJI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[244])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1263, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_627stream_COSH, 0, __pyx_mstate_global->__pyx_n_u_stream_COSH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[339])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3170, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLDRAGONFLYDOJI, __pyx_t_19) < (0)) __PYX_ERR(5, 1263, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_COSH, __pyx_t_3) < (0)) __PYX_ERR(5, 3170, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_439stream_CDLENGULFING, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLENGULFING, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[245])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1299, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_629stream_CUMSUM, 0, __pyx_mstate_global->__pyx_n_u_stream_CUMSUM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[340])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3197, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLENGULFING, __pyx_t_19) < (0)) __PYX_ERR(5, 1299, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CUMSUM, __pyx_t_3) < (0)) __PYX_ERR(5, 3197, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_19 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1337, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3226, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 3226, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); - __pyx_t_8 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 1335, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_441stream_CDLEVENINGDOJISTAR, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLEVENINGDOJISTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[246])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1335, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_11 = PyTuple_Pack(2, __pyx_t_3, __pyx_t_9); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3224, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_631stream_CVI, 0, __pyx_mstate_global->__pyx_n_u_stream_CVI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[341])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 3224, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_8); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLEVENINGDOJISTAR, __pyx_t_19) < (0)) __PYX_ERR(5, 1335, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_11); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CVI, __pyx_t_9) < (0)) __PYX_ERR(5, 3224, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_19 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1375, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 3259, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); - __pyx_t_8 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 1373, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_443stream_CDLEVENINGSTAR, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLEVENINGSTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[247])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1373, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_11 = PyTuple_Pack(1, __pyx_t_9); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3257, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_633stream_DEMA, 0, __pyx_mstate_global->__pyx_n_u_stream_DEMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[342])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 3257, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_8); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLEVENINGSTAR, __pyx_t_19) < (0)) __PYX_ERR(5, 1373, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_11); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_DEMA, __pyx_t_9) < (0)) __PYX_ERR(5, 3257, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_445stream_CDLGAPSIDESIDEWHITE, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLGAPSIDESIDEWHITE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[248])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1411, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_635stream_DIV, 0, __pyx_mstate_global->__pyx_n_u_stream_DIV, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[343])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 3286, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLGAPSIDESIDEWHITE, __pyx_t_19) < (0)) __PYX_ERR(5, 1411, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_DIV, __pyx_t_9) < (0)) __PYX_ERR(5, 3286, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_447stream_CDLGRAVESTONEDOJI, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLGRAVESTONEDOJI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[249])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1447, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLGRAVESTONEDOJI, __pyx_t_19) < (0)) __PYX_ERR(5, 1447, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 3319, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_449stream_CDLHAMMER, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLHAMMER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[250])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1483, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_11 = PyTuple_Pack(1, __pyx_t_9); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3317, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_637stream_DONCHIAN, 0, __pyx_mstate_global->__pyx_n_u_stream_DONCHIAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[344])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 3317, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLHAMMER, __pyx_t_19) < (0)) __PYX_ERR(5, 1483, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_11); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_DONCHIAN, __pyx_t_9) < (0)) __PYX_ERR(5, 3317, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_451stream_CDLHANGINGMAN, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLHANGINGMAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[251])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1519, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 3357, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + + __pyx_t_11 = PyTuple_Pack(1, __pyx_t_9); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3355, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_639stream_DPO, 0, __pyx_mstate_global->__pyx_n_u_stream_DPO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[345])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 3355, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLHANGINGMAN, __pyx_t_19) < (0)) __PYX_ERR(5, 1519, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_11); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_DPO, __pyx_t_9) < (0)) __PYX_ERR(5, 3355, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_453stream_CDLHARAMI, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLHARAMI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[252])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1555, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 3386, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + + __pyx_t_11 = PyTuple_Pack(1, __pyx_t_9); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3384, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_641stream_DX, 0, __pyx_mstate_global->__pyx_n_u_stream_DX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[346])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 3384, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLHARAMI, __pyx_t_19) < (0)) __PYX_ERR(5, 1555, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_11); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_DX, __pyx_t_9) < (0)) __PYX_ERR(5, 3384, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_455stream_CDLHARAMICROSS, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLHARAMICROSS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[253])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1591, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 3421, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + + __pyx_t_11 = PyTuple_Pack(1, __pyx_t_9); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3419, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_643stream_EFI, 0, __pyx_mstate_global->__pyx_n_u_stream_EFI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[347])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 3419, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLHARAMICROSS, __pyx_t_19) < (0)) __PYX_ERR(5, 1591, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_11); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_EFI, __pyx_t_9) < (0)) __PYX_ERR(5, 3419, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_457stream_CDLHIGHWAVE, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLHIGHWAVE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[254])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1627, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 3453, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + + __pyx_t_11 = PyTuple_Pack(1, __pyx_t_9); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3451, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_645stream_EMA, 0, __pyx_mstate_global->__pyx_n_u_stream_EMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[348])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 3451, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLHIGHWAVE, __pyx_t_19) < (0)) __PYX_ERR(5, 1627, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_11); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_EMA, __pyx_t_9) < (0)) __PYX_ERR(5, 3451, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_459stream_CDLHIKKAKE, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLHIKKAKE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[255])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1663, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 3482, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + + __pyx_t_11 = PyTuple_Pack(1, __pyx_t_9); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3480, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_647stream_ER, 0, __pyx_mstate_global->__pyx_n_u_stream_ER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[349])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 3480, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLHIKKAKE, __pyx_t_19) < (0)) __PYX_ERR(5, 1663, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_11); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ER, __pyx_t_9) < (0)) __PYX_ERR(5, 3480, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_461stream_CDLHIKKAKEMOD, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLHIKKAKEMOD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[256])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1699, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 3511, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + + __pyx_t_11 = PyTuple_Pack(1, __pyx_t_9); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3509, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_649stream_ERI, 0, __pyx_mstate_global->__pyx_n_u_stream_ERI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[350])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 3509, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLHIKKAKEMOD, __pyx_t_19) < (0)) __PYX_ERR(5, 1699, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_11); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ERI, __pyx_t_9) < (0)) __PYX_ERR(5, 3509, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_463stream_CDLHOMINGPIGEON, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLHOMINGPIGEON, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[257])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1735, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_651stream_EXP, 0, __pyx_mstate_global->__pyx_n_u_stream_EXP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[351])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 3547, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLHOMINGPIGEON, __pyx_t_19) < (0)) __PYX_ERR(5, 1735, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_EXP, __pyx_t_9) < (0)) __PYX_ERR(5, 3547, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_465stream_CDLIDENTICAL3CROWS, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLIDENTICAL3CROWS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[258])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1771, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_653stream_FLOOR, 0, __pyx_mstate_global->__pyx_n_u_stream_FLOOR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[352])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 3574, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLIDENTICAL3CROWS, __pyx_t_19) < (0)) __PYX_ERR(5, 1771, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_FLOOR, __pyx_t_9) < (0)) __PYX_ERR(5, 3574, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 3603, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_467stream_CDLINNECK, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLINNECK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[259])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1807, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_11 = PyTuple_Pack(1, __pyx_t_9); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3601, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_655stream_FOSC, 0, __pyx_mstate_global->__pyx_n_u_stream_FOSC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[353])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 3601, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLINNECK, __pyx_t_19) < (0)) __PYX_ERR(5, 1807, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_11); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_FOSC, __pyx_t_9) < (0)) __PYX_ERR(5, 3601, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 3632, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3632, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_469stream_CDLINVERTEDHAMMER, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLINVERTEDHAMMER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[260])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1843, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_3 = PyTuple_Pack(2, __pyx_t_9, __pyx_t_11); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3630, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_657stream_FRACTAL, 0, __pyx_mstate_global->__pyx_n_u_stream_FRACTAL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[354])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3630, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLINVERTEDHAMMER, __pyx_t_19) < (0)) __PYX_ERR(5, 1843, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_11, __pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_FRACTAL, __pyx_t_11) < (0)) __PYX_ERR(5, 3630, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_471stream_CDLKICKING, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLKICKING, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[261])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1879, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_659stream_HA, 0, __pyx_mstate_global->__pyx_n_u_stream_HA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[355])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3666, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLKICKING, __pyx_t_19) < (0)) __PYX_ERR(5, 1879, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_HA, __pyx_t_11) < (0)) __PYX_ERR(5, 3666, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + + __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3713, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_473stream_CDLKICKINGBYLENGTH, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLKICKINGBYLENGTH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[262])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1915, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_3 = PyTuple_Pack(1, __pyx_t_11); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3711, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_661stream_HMA, 0, __pyx_mstate_global->__pyx_n_u_stream_HMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[356])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3711, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLKICKINGBYLENGTH, __pyx_t_19) < (0)) __PYX_ERR(5, 1915, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_11, __pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_HMA, __pyx_t_11) < (0)) __PYX_ERR(5, 3711, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_475stream_CDLLADDERBOTTOM, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLLADDERBOTTOM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[263])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1951, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_663stream_HT_DCPERIOD, 0, __pyx_mstate_global->__pyx_n_u_stream_HT_DCPERIOD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[357])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3740, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLLADDERBOTTOM, __pyx_t_19) < (0)) __PYX_ERR(5, 1951, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_HT_DCPERIOD, __pyx_t_11) < (0)) __PYX_ERR(5, 3740, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_477stream_CDLLONGLEGGEDDOJI, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLLONGLEGGEDDOJI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[264])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 1987, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_665stream_HT_DCPHASE, 0, __pyx_mstate_global->__pyx_n_u_stream_HT_DCPHASE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[358])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3767, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLLONGLEGGEDDOJI, __pyx_t_19) < (0)) __PYX_ERR(5, 1987, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_HT_DCPHASE, __pyx_t_11) < (0)) __PYX_ERR(5, 3767, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_479stream_CDLLONGLINE, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLLONGLINE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[265])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2023, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_667stream_HT_PHASOR, 0, __pyx_mstate_global->__pyx_n_u_stream_HT_PHASOR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[359])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3794, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLLONGLINE, __pyx_t_19) < (0)) __PYX_ERR(5, 2023, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_HT_PHASOR, __pyx_t_11) < (0)) __PYX_ERR(5, 3794, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_481stream_CDLMARUBOZU, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLMARUBOZU, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[266])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2059, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_669stream_HT_SINE, 0, __pyx_mstate_global->__pyx_n_u_stream_HT_SINE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[360])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3824, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLMARUBOZU, __pyx_t_19) < (0)) __PYX_ERR(5, 2059, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_HT_SINE, __pyx_t_11) < (0)) __PYX_ERR(5, 3824, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_483stream_CDLMATCHINGLOW, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLMATCHINGLOW, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[267])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2095, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_671stream_HT_TRENDLINE, 0, __pyx_mstate_global->__pyx_n_u_stream_HT_TRENDLINE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[361])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3854, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLMATCHINGLOW, __pyx_t_19) < (0)) __PYX_ERR(5, 2095, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - - __pyx_t_19 = PyFloat_FromDouble(((double)0.5)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2133, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_HT_TRENDLINE, __pyx_t_11) < (0)) __PYX_ERR(5, 3854, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_8 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 2131, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_485stream_CDLMATHOLD, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLMATHOLD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[268])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2131, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_673stream_HT_TRENDMODE, 0, __pyx_mstate_global->__pyx_n_u_stream_HT_TRENDMODE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[362])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3881, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_8); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLMATHOLD, __pyx_t_19) < (0)) __PYX_ERR(5, 2131, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_HT_TRENDMODE, __pyx_t_11) < (0)) __PYX_ERR(5, 3881, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_19 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2171, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3910, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); - __pyx_t_8 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 2169, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_487stream_CDLMORNINGDOJISTAR, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLMORNINGDOJISTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[269])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2169, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_3 = PyTuple_Pack(1, __pyx_t_11); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3908, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_675stream_IMI, 0, __pyx_mstate_global->__pyx_n_u_stream_IMI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[363])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3908, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_8); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLMORNINGDOJISTAR, __pyx_t_19) < (0)) __PYX_ERR(5, 2169, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_11, __pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_IMI, __pyx_t_11) < (0)) __PYX_ERR(5, 3908, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_19 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2209, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3942, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); - __pyx_t_8 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 2207, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_489stream_CDLMORNINGSTAR, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLMORNINGSTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[270])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2207, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_3 = PyTuple_Pack(1, __pyx_t_11); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3940, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_677stream_KAMA, 0, __pyx_mstate_global->__pyx_n_u_stream_KAMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[364])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3940, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_8); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLMORNINGSTAR, __pyx_t_19) < (0)) __PYX_ERR(5, 2207, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_11, __pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_KAMA, __pyx_t_11) < (0)) __PYX_ERR(5, 3940, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_491stream_CDLONNECK, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLONNECK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[271])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2245, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLONNECK, __pyx_t_19) < (0)) __PYX_ERR(5, 2245, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3971, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3971, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_9 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 3971, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_493stream_CDLPIERCING, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLPIERCING, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[272])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2281, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_5 = PyTuple_Pack(3, __pyx_t_11, __pyx_t_3, __pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3969, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_679stream_KC, 0, __pyx_mstate_global->__pyx_n_u_stream_KC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[365])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 3969, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLPIERCING, __pyx_t_19) < (0)) __PYX_ERR(5, 2281, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_KC, __pyx_t_9) < (0)) __PYX_ERR(5, 3969, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_495stream_CDLRICKSHAWMAN, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLRICKSHAWMAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[273])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2317, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLRICKSHAWMAN, __pyx_t_19) < (0)) __PYX_ERR(5, 2317, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4014, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 4014, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)13)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4014, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 4014, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __pyx_t_12 = __Pyx_PyLong_From_int(((int)13)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 4014, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_497stream_CDLRISEFALL3METHODS, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLRISEFALL3METHODS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[274])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2353, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_10 = PyTuple_Pack(5, __pyx_t_9, __pyx_t_5, __pyx_t_3, __pyx_t_11, __pyx_t_12); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4012, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_681stream_KDJ, 0, __pyx_mstate_global->__pyx_n_u_stream_KDJ, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[366])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 4012, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLRISEFALL3METHODS, __pyx_t_19) < (0)) __PYX_ERR(5, 2353, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_KDJ, __pyx_t_12) < (0)) __PYX_ERR(5, 4012, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_499stream_CDLSEPARATINGLINES, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLSEPARATINGLINES, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[275])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2389, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLSEPARATINGLINES, __pyx_t_19) < (0)) __PYX_ERR(5, 2389, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 4059, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_501stream_CDLSHOOTINGSTAR, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLSHOOTINGSTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[276])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2425, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_10 = PyTuple_Pack(1, __pyx_t_12); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4057, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_683stream_LINEARREG, 0, __pyx_mstate_global->__pyx_n_u_stream_LINEARREG, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[367])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 4057, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLSHOOTINGSTAR, __pyx_t_19) < (0)) __PYX_ERR(5, 2425, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_LINEARREG, __pyx_t_12) < (0)) __PYX_ERR(5, 4057, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_503stream_CDLSHORTLINE, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLSHORTLINE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[277])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2461, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLSHORTLINE, __pyx_t_19) < (0)) __PYX_ERR(5, 2461, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 4088, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_505stream_CDLSPINNINGTOP, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLSPINNINGTOP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[278])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2497, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_10 = PyTuple_Pack(1, __pyx_t_12); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4086, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_685stream_LINEARREG_ANGLE, 0, __pyx_mstate_global->__pyx_n_u_stream_LINEARREG_ANGLE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[368])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 4086, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLSPINNINGTOP, __pyx_t_19) < (0)) __PYX_ERR(5, 2497, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_LINEARREG_ANGLE, __pyx_t_12) < (0)) __PYX_ERR(5, 4086, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_507stream_CDLSTALLEDPATTERN, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLSTALLEDPATTERN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[279])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2533, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLSTALLEDPATTERN, __pyx_t_19) < (0)) __PYX_ERR(5, 2533, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 4117, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_509stream_CDLSTICKSANDWICH, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLSTICKSANDWICH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[280])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2569, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_10 = PyTuple_Pack(1, __pyx_t_12); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4115, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_687stream_LINEARREG_INTERCEPT, 0, __pyx_mstate_global->__pyx_n_u_stream_LINEARREG_INTERCEPT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[369])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 4115, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLSTICKSANDWICH, __pyx_t_19) < (0)) __PYX_ERR(5, 2569, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_LINEARREG_INTERCEPT, __pyx_t_12) < (0)) __PYX_ERR(5, 4115, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_511stream_CDLTAKURI, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLTAKURI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[281])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2605, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLTAKURI, __pyx_t_19) < (0)) __PYX_ERR(5, 2605, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 4146, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_513stream_CDLTASUKIGAP, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLTASUKIGAP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[282])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2641, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_10 = PyTuple_Pack(1, __pyx_t_12); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4144, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_689stream_LINEARREG_SLOPE, 0, __pyx_mstate_global->__pyx_n_u_stream_LINEARREG_SLOPE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[370])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 4144, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLTASUKIGAP, __pyx_t_19) < (0)) __PYX_ERR(5, 2641, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_LINEARREG_SLOPE, __pyx_t_12) < (0)) __PYX_ERR(5, 4144, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_515stream_CDLTHRUSTING, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLTHRUSTING, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[283])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2677, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_691stream_LN, 0, __pyx_mstate_global->__pyx_n_u_stream_LN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[371])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 4173, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLTHRUSTING, __pyx_t_19) < (0)) __PYX_ERR(5, 2677, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_LN, __pyx_t_12) < (0)) __PYX_ERR(5, 4173, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_517stream_CDLTRISTAR, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLTRISTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[284])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2713, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_693stream_LOG10, 0, __pyx_mstate_global->__pyx_n_u_stream_LOG10, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[372])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 4200, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLTRISTAR, __pyx_t_19) < (0)) __PYX_ERR(5, 2713, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_LOG10, __pyx_t_12) < (0)) __PYX_ERR(5, 4200, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_519stream_CDLUNIQUE3RIVER, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLUNIQUE3RIVER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[285])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2749, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLUNIQUE3RIVER, __pyx_t_19) < (0)) __PYX_ERR(5, 2749, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 4229, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __pyx_t_10 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4229, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_521stream_CDLUPSIDEGAP2CROWS, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLUPSIDEGAP2CROWS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[286])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2785, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_11 = PyTuple_Pack(2, __pyx_t_12, __pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 4227, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_695stream_MA, 0, __pyx_mstate_global->__pyx_n_u_stream_MA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[373])); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4227, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_10); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLUPSIDEGAP2CROWS, __pyx_t_19) < (0)) __PYX_ERR(5, 2785, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_t_11); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MA, __pyx_t_10) < (0)) __PYX_ERR(5, 4227, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_523stream_CDLXSIDEGAP3METHODS, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLXSIDEGAP3METHODS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[287])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2821, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLXSIDEGAP3METHODS, __pyx_t_19) < (0)) __PYX_ERR(5, 2821, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __pyx_t_10 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4259, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 4259, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 4259, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_525stream_CEIL, 0, __pyx_mstate_global->__pyx_n_u_stream_CEIL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[288])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2857, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_3 = PyTuple_Pack(3, __pyx_t_10, __pyx_t_11, __pyx_t_12); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4257, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_697stream_MACD, 0, __pyx_mstate_global->__pyx_n_u_stream_MACD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[374])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 4257, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CEIL, __pyx_t_19) < (0)) __PYX_ERR(5, 2857, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MACD, __pyx_t_12) < (0)) __PYX_ERR(5, 4257, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2886, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 4296, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4296, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 4296, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __pyx_t_10 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4296, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 4296, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_9 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4296, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); - __pyx_t_8 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 2884, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_527stream_CMO, 0, __pyx_mstate_global->__pyx_n_u_stream_CMO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[289])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2884, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_13 = PyTuple_Pack(6, __pyx_t_12, __pyx_t_3, __pyx_t_11, __pyx_t_10, __pyx_t_5, __pyx_t_9); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4294, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_699stream_MACDEXT, 0, __pyx_mstate_global->__pyx_n_u_stream_MACDEXT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[375])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4294, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_8); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CMO, __pyx_t_19) < (0)) __PYX_ERR(5, 2884, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_13); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MACDEXT, __pyx_t_9) < (0)) __PYX_ERR(5, 4294, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2915, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4336, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); - __pyx_t_8 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 2913, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_529stream_CORREL, 0, __pyx_mstate_global->__pyx_n_u_stream_CORREL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[290])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2913, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_13 = PyTuple_Pack(1, __pyx_t_9); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4334, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_701stream_MACDFIX, 0, __pyx_mstate_global->__pyx_n_u_stream_MACDFIX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[376])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4334, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_8); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CORREL, __pyx_t_19) < (0)) __PYX_ERR(5, 2913, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_13); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MACDFIX, __pyx_t_9) < (0)) __PYX_ERR(5, 4334, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + + __pyx_t_9 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4371, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_13 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4371, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_531stream_COS, 0, __pyx_mstate_global->__pyx_n_u_stream_COS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[291])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2946, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_5 = PyTuple_Pack(2, __pyx_t_9, __pyx_t_13); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 4369, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_703stream_MAMA, 0, __pyx_mstate_global->__pyx_n_u_stream_MAMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[377])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4369, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_COS, __pyx_t_19) < (0)) __PYX_ERR(5, 2946, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MAMA, __pyx_t_13) < (0)) __PYX_ERR(5, 4369, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_533stream_COSH, 0, __pyx_mstate_global->__pyx_n_u_stream_COSH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[292])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 2973, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_705stream_MARKETFI, 0, __pyx_mstate_global->__pyx_n_u_stream_MARKETFI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[378])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4402, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_COSH, __pyx_t_19) < (0)) __PYX_ERR(5, 2973, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MARKETFI, __pyx_t_13) < (0)) __PYX_ERR(5, 4402, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3002, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4437, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 4437, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); - __pyx_t_8 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 3000, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_535stream_DEMA, 0, __pyx_mstate_global->__pyx_n_u_stream_DEMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[293])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3000, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_9 = PyTuple_Pack(2, __pyx_t_13, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4435, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_707stream_MASSI, 0, __pyx_mstate_global->__pyx_n_u_stream_MASSI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[379])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 4435, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_8); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_DEMA, __pyx_t_19) < (0)) __PYX_ERR(5, 3000, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_9); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MASSI, __pyx_t_5) < (0)) __PYX_ERR(5, 4435, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 4470, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4470, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_13 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4470, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_537stream_DIV, 0, __pyx_mstate_global->__pyx_n_u_stream_DIV, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[294])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3029, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_10 = PyTuple_Pack(3, __pyx_t_5, __pyx_t_9, __pyx_t_13); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4468, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_709stream_MAVP, 0, __pyx_mstate_global->__pyx_n_u_stream_MAVP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[380])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4468, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_DIV, __pyx_t_19) < (0)) __PYX_ERR(5, 3029, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MAVP, __pyx_t_13) < (0)) __PYX_ERR(5, 4468, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3062, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4505, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); - __pyx_t_8 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 3060, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_539stream_DX, 0, __pyx_mstate_global->__pyx_n_u_stream_DX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[295])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3060, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_10 = PyTuple_Pack(1, __pyx_t_13); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4503, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_711stream_MAX, 0, __pyx_mstate_global->__pyx_n_u_stream_MAX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[381])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4503, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_8); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_DX, __pyx_t_19) < (0)) __PYX_ERR(5, 3060, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MAX, __pyx_t_13) < (0)) __PYX_ERR(5, 4503, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3097, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4534, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); - __pyx_t_8 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 3095, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_541stream_EMA, 0, __pyx_mstate_global->__pyx_n_u_stream_EMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[296])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3095, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_10 = PyTuple_Pack(1, __pyx_t_13); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4532, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_713stream_MAXINDEX, 0, __pyx_mstate_global->__pyx_n_u_stream_MAXINDEX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[382])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4532, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_8); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_EMA, __pyx_t_19) < (0)) __PYX_ERR(5, 3095, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MAXINDEX, __pyx_t_13) < (0)) __PYX_ERR(5, 4532, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_543stream_EXP, 0, __pyx_mstate_global->__pyx_n_u_stream_EXP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[297])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3124, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_715stream_MEDPRICE, 0, __pyx_mstate_global->__pyx_n_u_stream_MEDPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[383])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4561, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_EXP, __pyx_t_19) < (0)) __PYX_ERR(5, 3124, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MEDPRICE, __pyx_t_13) < (0)) __PYX_ERR(5, 4561, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_545stream_FLOOR, 0, __pyx_mstate_global->__pyx_n_u_stream_FLOOR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[298])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3151, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_FLOOR, __pyx_t_19) < (0)) __PYX_ERR(5, 3151, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4593, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_547stream_HT_DCPERIOD, 0, __pyx_mstate_global->__pyx_n_u_stream_HT_DCPERIOD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[299])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3178, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_10 = PyTuple_Pack(1, __pyx_t_13); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4591, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_717stream_MFI, 0, __pyx_mstate_global->__pyx_n_u_stream_MFI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[384])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4591, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_HT_DCPERIOD, __pyx_t_19) < (0)) __PYX_ERR(5, 3178, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MFI, __pyx_t_13) < (0)) __PYX_ERR(5, 4591, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_549stream_HT_DCPHASE, 0, __pyx_mstate_global->__pyx_n_u_stream_HT_DCPHASE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[300])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3205, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_HT_DCPHASE, __pyx_t_19) < (0)) __PYX_ERR(5, 3205, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4631, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_551stream_HT_PHASOR, 0, __pyx_mstate_global->__pyx_n_u_stream_HT_PHASOR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[301])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3232, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_10 = PyTuple_Pack(1, __pyx_t_13); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4629, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_719stream_MIDPOINT, 0, __pyx_mstate_global->__pyx_n_u_stream_MIDPOINT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[385])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4629, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_HT_PHASOR, __pyx_t_19) < (0)) __PYX_ERR(5, 3232, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MIDPOINT, __pyx_t_13) < (0)) __PYX_ERR(5, 4629, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_553stream_HT_SINE, 0, __pyx_mstate_global->__pyx_n_u_stream_HT_SINE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[302])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3262, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_HT_SINE, __pyx_t_19) < (0)) __PYX_ERR(5, 3262, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4660, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_555stream_HT_TRENDLINE, 0, __pyx_mstate_global->__pyx_n_u_stream_HT_TRENDLINE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[303])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3292, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_10 = PyTuple_Pack(1, __pyx_t_13); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4658, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_721stream_MIDPRICE, 0, __pyx_mstate_global->__pyx_n_u_stream_MIDPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[386])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4658, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_HT_TRENDLINE, __pyx_t_19) < (0)) __PYX_ERR(5, 3292, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MIDPRICE, __pyx_t_13) < (0)) __PYX_ERR(5, 4658, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4692, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_557stream_HT_TRENDMODE, 0, __pyx_mstate_global->__pyx_n_u_stream_HT_TRENDMODE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[304])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3319, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_10 = PyTuple_Pack(1, __pyx_t_13); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4690, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_723stream_MIN, 0, __pyx_mstate_global->__pyx_n_u_stream_MIN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[387])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4690, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_HT_TRENDMODE, __pyx_t_19) < (0)) __PYX_ERR(5, 3319, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MIN, __pyx_t_13) < (0)) __PYX_ERR(5, 4690, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3348, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4721, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); - __pyx_t_8 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 3346, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_559stream_IMI, 0, __pyx_mstate_global->__pyx_n_u_stream_IMI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[305])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3346, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_10 = PyTuple_Pack(1, __pyx_t_13); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4719, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_725stream_MININDEX, 0, __pyx_mstate_global->__pyx_n_u_stream_MININDEX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[388])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4719, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_8); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_IMI, __pyx_t_19) < (0)) __PYX_ERR(5, 3346, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MININDEX, __pyx_t_13) < (0)) __PYX_ERR(5, 4719, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3380, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4750, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); - __pyx_t_8 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 3378, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_561stream_KAMA, 0, __pyx_mstate_global->__pyx_n_u_stream_KAMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[306])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3378, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_10 = PyTuple_Pack(1, __pyx_t_13); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4748, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_727stream_MINMAX, 0, __pyx_mstate_global->__pyx_n_u_stream_MINMAX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[389])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4748, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_8); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_KAMA, __pyx_t_19) < (0)) __PYX_ERR(5, 3378, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MINMAX, __pyx_t_13) < (0)) __PYX_ERR(5, 4748, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3409, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4782, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); - __pyx_t_8 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 3407, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_563stream_LINEARREG, 0, __pyx_mstate_global->__pyx_n_u_stream_LINEARREG, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[307])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3407, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_10 = PyTuple_Pack(1, __pyx_t_13); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4780, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_729stream_MINMAXINDEX, 0, __pyx_mstate_global->__pyx_n_u_stream_MINMAXINDEX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[390])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4780, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_8); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_LINEARREG, __pyx_t_19) < (0)) __PYX_ERR(5, 3407, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MINMAXINDEX, __pyx_t_13) < (0)) __PYX_ERR(5, 4780, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3438, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4814, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); - __pyx_t_8 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 3436, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_565stream_LINEARREG_ANGLE, 0, __pyx_mstate_global->__pyx_n_u_stream_LINEARREG_ANGLE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[308])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3436, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_10 = PyTuple_Pack(1, __pyx_t_13); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4812, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_731stream_MINUS_DI, 0, __pyx_mstate_global->__pyx_n_u_stream_MINUS_DI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[391])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4812, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_8); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_LINEARREG_ANGLE, __pyx_t_19) < (0)) __PYX_ERR(5, 3436, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MINUS_DI, __pyx_t_13) < (0)) __PYX_ERR(5, 4812, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3467, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4849, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); - __pyx_t_8 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 3465, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_567stream_LINEARREG_INTERCEPT, 0, __pyx_mstate_global->__pyx_n_u_stream_LINEARREG_INTERCEPT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[309])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3465, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_10 = PyTuple_Pack(1, __pyx_t_13); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4847, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_733stream_MINUS_DM, 0, __pyx_mstate_global->__pyx_n_u_stream_MINUS_DM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[392])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4847, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_8); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_LINEARREG_INTERCEPT, __pyx_t_19) < (0)) __PYX_ERR(5, 3465, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MINUS_DM, __pyx_t_13) < (0)) __PYX_ERR(5, 4847, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3496, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4881, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); - __pyx_t_8 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 3494, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_569stream_LINEARREG_SLOPE, 0, __pyx_mstate_global->__pyx_n_u_stream_LINEARREG_SLOPE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[310])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3494, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_10 = PyTuple_Pack(1, __pyx_t_13); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4879, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_735stream_MOM, 0, __pyx_mstate_global->__pyx_n_u_stream_MOM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[393])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4879, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_8); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_LINEARREG_SLOPE, __pyx_t_19) < (0)) __PYX_ERR(5, 3494, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MOM, __pyx_t_13) < (0)) __PYX_ERR(5, 4879, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_571stream_LN, 0, __pyx_mstate_global->__pyx_n_u_stream_LN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[311])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3523, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_737stream_MULT, 0, __pyx_mstate_global->__pyx_n_u_stream_MULT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[394])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4908, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_LN, __pyx_t_19) < (0)) __PYX_ERR(5, 3523, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MULT, __pyx_t_13) < (0)) __PYX_ERR(5, 4908, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4941, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_573stream_LOG10, 0, __pyx_mstate_global->__pyx_n_u_stream_LOG10, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[312])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3550, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_10 = PyTuple_Pack(1, __pyx_t_13); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4939, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_739stream_NATR, 0, __pyx_mstate_global->__pyx_n_u_stream_NATR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[395])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4939, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_LOG10, __pyx_t_19) < (0)) __PYX_ERR(5, 3550, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - - __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3579, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __pyx_t_8 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 3579, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_NATR, __pyx_t_13) < (0)) __PYX_ERR(5, 4939, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_6 = PyTuple_Pack(2, __pyx_t_19, __pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 3577, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_575stream_MA, 0, __pyx_mstate_global->__pyx_n_u_stream_MA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[313])); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 3577, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_741stream_NVI, 0, __pyx_mstate_global->__pyx_n_u_stream_NVI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[396])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4974, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_8); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_8, __pyx_t_6); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MA, __pyx_t_8) < (0)) __PYX_ERR(5, 3577, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - - __pyx_t_8 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 3609, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_6 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 3609, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3609, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_NVI, __pyx_t_13) < (0)) __PYX_ERR(5, 4974, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_3 = PyTuple_Pack(3, __pyx_t_8, __pyx_t_6, __pyx_t_19); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3607, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_577stream_MACD, 0, __pyx_mstate_global->__pyx_n_u_stream_MACD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[314])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3607, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_743stream_OBV, 0, __pyx_mstate_global->__pyx_n_u_stream_OBV, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[397])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 5004, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MACD, __pyx_t_19) < (0)) __PYX_ERR(5, 3607, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_OBV, __pyx_t_13) < (0)) __PYX_ERR(5, 5004, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 3646, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __pyx_t_3 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3646, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_6 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 3646, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_8 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 3646, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3646, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3646, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 5037, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __pyx_t_10 = PyFloat_FromDouble(((double)50.0)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5037, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); - __pyx_t_15 = PyTuple_Pack(6, __pyx_t_19, __pyx_t_3, __pyx_t_6, __pyx_t_8, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_15)) __PYX_ERR(5, 3644, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_579stream_MACDEXT, 0, __pyx_mstate_global->__pyx_n_u_stream_MACDEXT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[315])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3644, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_9 = PyTuple_Pack(2, __pyx_t_13, __pyx_t_10); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5035, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_745stream_PERCENTILE, 0, __pyx_mstate_global->__pyx_n_u_stream_PERCENTILE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[398])); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5035, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_10); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MACDEXT, __pyx_t_2) < (0)) __PYX_ERR(5, 3644, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_t_9); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_PERCENTILE, __pyx_t_10) < (0)) __PYX_ERR(5, 5035, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3686, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_10 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5067, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); - __pyx_t_15 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_15)) __PYX_ERR(5, 3684, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_581stream_MACDFIX, 0, __pyx_mstate_global->__pyx_n_u_stream_MACDFIX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[316])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3684, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_9 = PyTuple_Pack(1, __pyx_t_10); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5065, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_747stream_PERCENTRANK, 0, __pyx_mstate_global->__pyx_n_u_stream_PERCENTRANK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[399])); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5065, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_10); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MACDFIX, __pyx_t_2) < (0)) __PYX_ERR(5, 3684, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_t_9); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_PERCENTRANK, __pyx_t_10) < (0)) __PYX_ERR(5, 5065, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_2 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3721, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_15 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_15)) __PYX_ERR(5, 3721, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); + __pyx_t_10 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5096, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); - __pyx_t_4 = PyTuple_Pack(2, __pyx_t_2, __pyx_t_15); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3719, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - __pyx_t_15 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_583stream_MAMA, 0, __pyx_mstate_global->__pyx_n_u_stream_MAMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[317])); if (unlikely(!__pyx_t_15)) __PYX_ERR(5, 3719, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); + __pyx_t_9 = PyTuple_Pack(1, __pyx_t_10); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5094, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_749stream_PLUS_DI, 0, __pyx_mstate_global->__pyx_n_u_stream_PLUS_DI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[400])); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5094, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_15); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_10); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_15, __pyx_t_4); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MAMA, __pyx_t_15) < (0)) __PYX_ERR(5, 3719, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_t_9); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_PLUS_DI, __pyx_t_10) < (0)) __PYX_ERR(5, 5094, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_15 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_15)) __PYX_ERR(5, 3754, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3754, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3754, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_10 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5131, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); - __pyx_t_8 = PyTuple_Pack(3, __pyx_t_15, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 3752, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_585stream_MAVP, 0, __pyx_mstate_global->__pyx_n_u_stream_MAVP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[318])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3752, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_9 = PyTuple_Pack(1, __pyx_t_10); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5129, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_751stream_PLUS_DM, 0, __pyx_mstate_global->__pyx_n_u_stream_PLUS_DM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[401])); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5129, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_10); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_8); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MAVP, __pyx_t_2) < (0)) __PYX_ERR(5, 3752, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_t_9); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_PLUS_DM, __pyx_t_10) < (0)) __PYX_ERR(5, 5129, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3789, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_10 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5163, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5163, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_13 = __Pyx_PyLong_From_int(((int)1)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 5163, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); - __pyx_t_8 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 3787, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_587stream_MAX, 0, __pyx_mstate_global->__pyx_n_u_stream_MAX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[319])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3787, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_5 = PyTuple_Pack(3, __pyx_t_10, __pyx_t_9, __pyx_t_13); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 5161, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_753stream_PPO, 0, __pyx_mstate_global->__pyx_n_u_stream_PPO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[402])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 5161, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_8); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MAX, __pyx_t_2) < (0)) __PYX_ERR(5, 3787, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3818, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_PPO, __pyx_t_13) < (0)) __PYX_ERR(5, 5161, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_8 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 3816, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_589stream_MAXINDEX, 0, __pyx_mstate_global->__pyx_n_u_stream_MAXINDEX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[320])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3816, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_755stream_PVI, 0, __pyx_mstate_global->__pyx_n_u_stream_PVI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[403])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 5192, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_8); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MAXINDEX, __pyx_t_2) < (0)) __PYX_ERR(5, 3816, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_PVI, __pyx_t_13) < (0)) __PYX_ERR(5, 5192, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_591stream_MEDPRICE, 0, __pyx_mstate_global->__pyx_n_u_stream_MEDPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[321])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3845, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 5224, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 5224, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_9 = __Pyx_PyLong_From_int(((int)1)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5224, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + + __pyx_t_10 = PyTuple_Pack(3, __pyx_t_13, __pyx_t_5, __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5222, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_757stream_PVO, 0, __pyx_mstate_global->__pyx_n_u_stream_PVO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[404])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5222, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MEDPRICE, __pyx_t_2) < (0)) __PYX_ERR(5, 3845, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3877, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_PVO, __pyx_t_9) < (0)) __PYX_ERR(5, 5222, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_8 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 3875, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_593stream_MFI, 0, __pyx_mstate_global->__pyx_n_u_stream_MFI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[322])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3875, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_759stream_PVT, 0, __pyx_mstate_global->__pyx_n_u_stream_PVT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[405])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5253, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_8); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MFI, __pyx_t_2) < (0)) __PYX_ERR(5, 3875, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_PVT, __pyx_t_9) < (0)) __PYX_ERR(5, 5253, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3915, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5285, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); - __pyx_t_8 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 3913, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_595stream_MIDPOINT, 0, __pyx_mstate_global->__pyx_n_u_stream_MIDPOINT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[323])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3913, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_10 = PyTuple_Pack(1, __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5283, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_761stream_QSTICK, 0, __pyx_mstate_global->__pyx_n_u_stream_QSTICK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[406])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5283, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_8); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MIDPOINT, __pyx_t_2) < (0)) __PYX_ERR(5, 3913, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_QSTICK, __pyx_t_9) < (0)) __PYX_ERR(5, 5283, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3944, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5317, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); - __pyx_t_8 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 3942, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_597stream_MIDPRICE, 0, __pyx_mstate_global->__pyx_n_u_stream_MIDPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[324])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3942, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_10 = PyTuple_Pack(1, __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5315, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_763stream_RMA, 0, __pyx_mstate_global->__pyx_n_u_stream_RMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[407])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5315, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_8); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MIDPRICE, __pyx_t_2) < (0)) __PYX_ERR(5, 3942, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_RMA, __pyx_t_9) < (0)) __PYX_ERR(5, 5315, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3976, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5346, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); - __pyx_t_8 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 3974, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_599stream_MIN, 0, __pyx_mstate_global->__pyx_n_u_stream_MIN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[325])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3974, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_10 = PyTuple_Pack(1, __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5344, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_765stream_ROC, 0, __pyx_mstate_global->__pyx_n_u_stream_ROC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[408])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5344, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_8); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MIN, __pyx_t_2) < (0)) __PYX_ERR(5, 3974, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ROC, __pyx_t_9) < (0)) __PYX_ERR(5, 5344, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4005, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5375, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); - __pyx_t_8 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 4003, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_601stream_MININDEX, 0, __pyx_mstate_global->__pyx_n_u_stream_MININDEX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[326])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4003, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_10 = PyTuple_Pack(1, __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5373, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_767stream_ROCP, 0, __pyx_mstate_global->__pyx_n_u_stream_ROCP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[409])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5373, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_8); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MININDEX, __pyx_t_2) < (0)) __PYX_ERR(5, 4003, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4034, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ROCP, __pyx_t_9) < (0)) __PYX_ERR(5, 5373, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_8 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 4032, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_603stream_MINMAX, 0, __pyx_mstate_global->__pyx_n_u_stream_MINMAX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[327])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4032, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5404, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + + __pyx_t_10 = PyTuple_Pack(1, __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5402, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_769stream_ROCR, 0, __pyx_mstate_global->__pyx_n_u_stream_ROCR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[410])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5402, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_8); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MINMAX, __pyx_t_2) < (0)) __PYX_ERR(5, 4032, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ROCR, __pyx_t_9) < (0)) __PYX_ERR(5, 5402, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4066, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5433, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); - __pyx_t_8 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 4064, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_605stream_MINMAXINDEX, 0, __pyx_mstate_global->__pyx_n_u_stream_MINMAXINDEX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[328])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4064, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_10 = PyTuple_Pack(1, __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5431, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_771stream_ROCR100, 0, __pyx_mstate_global->__pyx_n_u_stream_ROCR100, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[411])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5431, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_8); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MINMAXINDEX, __pyx_t_2) < (0)) __PYX_ERR(5, 4064, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ROCR100, __pyx_t_9) < (0)) __PYX_ERR(5, 5431, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4098, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5462, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); - __pyx_t_8 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 4096, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_607stream_MINUS_DI, 0, __pyx_mstate_global->__pyx_n_u_stream_MINUS_DI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[329])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4096, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_10 = PyTuple_Pack(1, __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5460, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_773stream_RSI, 0, __pyx_mstate_global->__pyx_n_u_stream_RSI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[412])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5460, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_8); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MINUS_DI, __pyx_t_2) < (0)) __PYX_ERR(5, 4096, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_RSI, __pyx_t_9) < (0)) __PYX_ERR(5, 5460, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4133, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5491, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_10 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5491, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); - __pyx_t_8 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 4131, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_609stream_MINUS_DM, 0, __pyx_mstate_global->__pyx_n_u_stream_MINUS_DM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[330])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4131, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_5 = PyTuple_Pack(2, __pyx_t_9, __pyx_t_10); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 5489, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_775stream_RVI, 0, __pyx_mstate_global->__pyx_n_u_stream_RVI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[413])); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5489, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_10); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_8); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MINUS_DM, __pyx_t_2) < (0)) __PYX_ERR(5, 4131, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_RVI, __pyx_t_10) < (0)) __PYX_ERR(5, 5489, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4165, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_10 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5521, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); - __pyx_t_8 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 4163, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_611stream_MOM, 0, __pyx_mstate_global->__pyx_n_u_stream_MOM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[331])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4163, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_5 = PyTuple_Pack(1, __pyx_t_10); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 5519, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_777stream_RVOL, 0, __pyx_mstate_global->__pyx_n_u_stream_RVOL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[414])); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5519, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_10); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_8); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MOM, __pyx_t_2) < (0)) __PYX_ERR(5, 4163, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_RVOL, __pyx_t_10) < (0)) __PYX_ERR(5, 5519, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_613stream_MULT, 0, __pyx_mstate_global->__pyx_n_u_stream_MULT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[332])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4192, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_10 = PyFloat_FromDouble(((double)0.02)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5550, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __pyx_t_5 = PyFloat_FromDouble(((double)0.2)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 5550, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + + __pyx_t_9 = PyTuple_Pack(2, __pyx_t_10, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5548, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_779stream_SAR, 0, __pyx_mstate_global->__pyx_n_u_stream_SAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[415])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 5548, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MULT, __pyx_t_2) < (0)) __PYX_ERR(5, 4192, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_9); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_SAR, __pyx_t_5) < (0)) __PYX_ERR(5, 5548, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4225, __pyx_L1_error) + __pyx_t_5 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 5583, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_9 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5583, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_10 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5583, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __pyx_t_13 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 5583, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __pyx_t_11 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 5583, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __pyx_t_3 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5583, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_12 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 5583, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __pyx_t_2 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5583, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_8 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 4223, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); + __pyx_t_4 = PyTuple_Pack(8, __pyx_t_5, __pyx_t_9, __pyx_t_10, __pyx_t_13, __pyx_t_11, __pyx_t_3, __pyx_t_12, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 5581, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_615stream_NATR, 0, __pyx_mstate_global->__pyx_n_u_stream_NATR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[333])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4223, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_781stream_SAREXT, 0, __pyx_mstate_global->__pyx_n_u_stream_SAREXT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[416])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5581, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_8); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_NATR, __pyx_t_2) < (0)) __PYX_ERR(5, 4223, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_SAREXT, __pyx_t_2) < (0)) __PYX_ERR(5, 5581, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_617stream_OBV, 0, __pyx_mstate_global->__pyx_n_u_stream_OBV, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[334])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4258, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_783stream_SIN, 0, __pyx_mstate_global->__pyx_n_u_stream_SIN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[417])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5620, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_OBV, __pyx_t_2) < (0)) __PYX_ERR(5, 4258, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_SIN, __pyx_t_2) < (0)) __PYX_ERR(5, 5620, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4291, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - - __pyx_t_8 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 4289, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_619stream_PLUS_DI, 0, __pyx_mstate_global->__pyx_n_u_stream_PLUS_DI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[335])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4289, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_785stream_SINH, 0, __pyx_mstate_global->__pyx_n_u_stream_SINH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[418])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5647, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_8); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_PLUS_DI, __pyx_t_2) < (0)) __PYX_ERR(5, 4289, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_SINH, __pyx_t_2) < (0)) __PYX_ERR(5, 5647, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4326, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5676, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_8 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 4324, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); + __pyx_t_4 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 5674, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_621stream_PLUS_DM, 0, __pyx_mstate_global->__pyx_n_u_stream_PLUS_DM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[336])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4324, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_787stream_SMA, 0, __pyx_mstate_global->__pyx_n_u_stream_SMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[419])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5674, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_8); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_PLUS_DM, __pyx_t_2) < (0)) __PYX_ERR(5, 4324, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_SMA, __pyx_t_2) < (0)) __PYX_ERR(5, 5674, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4358, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_8 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 4358, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_4 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4358, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 5705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); + __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 5705, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5705, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); - __pyx_t_15 = PyTuple_Pack(3, __pyx_t_2, __pyx_t_8, __pyx_t_4); if (unlikely(!__pyx_t_15)) __PYX_ERR(5, 4356, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); + __pyx_t_11 = PyTuple_Pack(4, __pyx_t_2, __pyx_t_4, __pyx_t_12, __pyx_t_3); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 5703, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_623stream_PPO, 0, __pyx_mstate_global->__pyx_n_u_stream_PPO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[337])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4356, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_789stream_SMI, 0, __pyx_mstate_global->__pyx_n_u_stream_SMI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[420])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5703, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_PPO, __pyx_t_4) < (0)) __PYX_ERR(5, 4356, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4389, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_11); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_SMI, __pyx_t_3) < (0)) __PYX_ERR(5, 5703, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_15 = PyTuple_Pack(1, __pyx_t_4); if (unlikely(!__pyx_t_15)) __PYX_ERR(5, 4387, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_625stream_ROC, 0, __pyx_mstate_global->__pyx_n_u_stream_ROC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[338])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4387, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_791stream_SQRT, 0, __pyx_mstate_global->__pyx_n_u_stream_SQRT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[421])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5744, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ROC, __pyx_t_4) < (0)) __PYX_ERR(5, 4387, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_SQRT, __pyx_t_3) < (0)) __PYX_ERR(5, 5744, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4418, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5773, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_11 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 5773, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); - __pyx_t_15 = PyTuple_Pack(1, __pyx_t_4); if (unlikely(!__pyx_t_15)) __PYX_ERR(5, 4416, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_627stream_ROCP, 0, __pyx_mstate_global->__pyx_n_u_stream_ROCP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[339])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4416, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_12 = PyTuple_Pack(2, __pyx_t_3, __pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 5771, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_793stream_STDDEV, 0, __pyx_mstate_global->__pyx_n_u_stream_STDDEV, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[422])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 5771, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ROCP, __pyx_t_4) < (0)) __PYX_ERR(5, 4416, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_11, __pyx_t_12); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_STDDEV, __pyx_t_11) < (0)) __PYX_ERR(5, 5771, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4447, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 5803, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 5803, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5803, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 5803, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); + __pyx_t_2 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5803, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); - __pyx_t_15 = PyTuple_Pack(1, __pyx_t_4); if (unlikely(!__pyx_t_15)) __PYX_ERR(5, 4445, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); + __pyx_t_13 = PyTuple_Pack(5, __pyx_t_11, __pyx_t_12, __pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 5801, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_629stream_ROCR, 0, __pyx_mstate_global->__pyx_n_u_stream_ROCR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[340])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4445, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_795stream_STOCH, 0, __pyx_mstate_global->__pyx_n_u_stream_STOCH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[423])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5801, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ROCR, __pyx_t_4) < (0)) __PYX_ERR(5, 4445, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_13); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_STOCH, __pyx_t_2) < (0)) __PYX_ERR(5, 5801, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4476, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5845, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 5845, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __pyx_t_4 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 5845, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_15 = PyTuple_Pack(1, __pyx_t_4); if (unlikely(!__pyx_t_15)) __PYX_ERR(5, 4474, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); + __pyx_t_3 = PyTuple_Pack(3, __pyx_t_2, __pyx_t_13, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5843, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_631stream_ROCR100, 0, __pyx_mstate_global->__pyx_n_u_stream_ROCR100, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[341])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4474, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_797stream_STOCHF, 0, __pyx_mstate_global->__pyx_n_u_stream_STOCHF, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[424])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 5843, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ROCR100, __pyx_t_4) < (0)) __PYX_ERR(5, 4474, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_STOCHF, __pyx_t_4) < (0)) __PYX_ERR(5, 5843, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4505, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 5885, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5885, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 5885, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __pyx_t_2 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5885, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); - __pyx_t_15 = PyTuple_Pack(1, __pyx_t_4); if (unlikely(!__pyx_t_15)) __PYX_ERR(5, 4503, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); + __pyx_t_12 = PyTuple_Pack(4, __pyx_t_4, __pyx_t_3, __pyx_t_13, __pyx_t_2); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 5883, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_633stream_RSI, 0, __pyx_mstate_global->__pyx_n_u_stream_RSI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[342])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4503, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_799stream_STOCHRSI, 0, __pyx_mstate_global->__pyx_n_u_stream_STOCHRSI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[425])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5883, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_RSI, __pyx_t_4) < (0)) __PYX_ERR(5, 4503, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - __pyx_t_4 = PyFloat_FromDouble(((double)0.02)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4534, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_15 = PyFloat_FromDouble(((double)0.2)); if (unlikely(!__pyx_t_15)) __PYX_ERR(5, 4534, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_12); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_STOCHRSI, __pyx_t_2) < (0)) __PYX_ERR(5, 5883, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_8 = PyTuple_Pack(2, __pyx_t_4, __pyx_t_15); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 4532, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - __pyx_t_15 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_635stream_SAR, 0, __pyx_mstate_global->__pyx_n_u_stream_SAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[343])); if (unlikely(!__pyx_t_15)) __PYX_ERR(5, 4532, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_801stream_SUB, 0, __pyx_mstate_global->__pyx_n_u_stream_SUB, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[426])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5918, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_15); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_15, __pyx_t_8); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_SAR, __pyx_t_15) < (0)) __PYX_ERR(5, 4532, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_SUB, __pyx_t_2) < (0)) __PYX_ERR(5, 5918, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_15 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_15)) __PYX_ERR(5, 4567, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __pyx_t_8 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 4567, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_4 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4567, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4567, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5951, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_6 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 4567, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_3 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4567, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_19 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 4567, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __pyx_t_16 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_16)) __PYX_ERR(5, 4567, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); - __pyx_t_20 = PyTuple_Pack(8, __pyx_t_15, __pyx_t_8, __pyx_t_4, __pyx_t_2, __pyx_t_6, __pyx_t_3, __pyx_t_19, __pyx_t_16); if (unlikely(!__pyx_t_20)) __PYX_ERR(5, 4565, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_20); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_12 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 5949, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - __pyx_t_16 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_637stream_SAREXT, 0, __pyx_mstate_global->__pyx_n_u_stream_SAREXT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[344])); if (unlikely(!__pyx_t_16)) __PYX_ERR(5, 4565, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_803stream_SUM, 0, __pyx_mstate_global->__pyx_n_u_stream_SUM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[427])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5949, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_16); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_16, __pyx_t_20); - __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_SAREXT, __pyx_t_16) < (0)) __PYX_ERR(5, 4565, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_12); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_SUM, __pyx_t_2) < (0)) __PYX_ERR(5, 5949, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_16 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_639stream_SIN, 0, __pyx_mstate_global->__pyx_n_u_stream_SIN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[345])); if (unlikely(!__pyx_t_16)) __PYX_ERR(5, 4604, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_16); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_SIN, __pyx_t_16) < (0)) __PYX_ERR(5, 4604, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5980, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_12 = PyFloat_FromDouble(((double)3.0)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 5980, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); - __pyx_t_16 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_641stream_SINH, 0, __pyx_mstate_global->__pyx_n_u_stream_SINH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[346])); if (unlikely(!__pyx_t_16)) __PYX_ERR(5, 4631, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); + __pyx_t_13 = PyTuple_Pack(2, __pyx_t_2, __pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 5978, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_805stream_SUPERTREND, 0, __pyx_mstate_global->__pyx_n_u_stream_SUPERTREND, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[428])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 5978, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_16); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_SINH, __pyx_t_16) < (0)) __PYX_ERR(5, 4631, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_13); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_SUPERTREND, __pyx_t_12) < (0)) __PYX_ERR(5, 5978, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_16 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_16)) __PYX_ERR(5, 4660, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); + __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 6019, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __pyx_t_13 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 6019, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); - __pyx_t_20 = PyTuple_Pack(1, __pyx_t_16); if (unlikely(!__pyx_t_20)) __PYX_ERR(5, 4658, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_20); - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - __pyx_t_16 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_643stream_SMA, 0, __pyx_mstate_global->__pyx_n_u_stream_SMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[347])); if (unlikely(!__pyx_t_16)) __PYX_ERR(5, 4658, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); + __pyx_t_2 = PyTuple_Pack(2, __pyx_t_12, __pyx_t_13); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6017, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_807stream_T3, 0, __pyx_mstate_global->__pyx_n_u_stream_T3, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[429])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 6017, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_16); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_16, __pyx_t_20); - __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_SMA, __pyx_t_16) < (0)) __PYX_ERR(5, 4658, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_T3, __pyx_t_13) < (0)) __PYX_ERR(5, 6017, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_16 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_645stream_SQRT, 0, __pyx_mstate_global->__pyx_n_u_stream_SQRT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[348])); if (unlikely(!__pyx_t_16)) __PYX_ERR(5, 4687, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_809stream_TAN, 0, __pyx_mstate_global->__pyx_n_u_stream_TAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[430])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 6047, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_16); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_SQRT, __pyx_t_16) < (0)) __PYX_ERR(5, 4687, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - - __pyx_t_16 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_16)) __PYX_ERR(5, 4716, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); - __pyx_t_20 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_20)) __PYX_ERR(5, 4716, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_20); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_TAN, __pyx_t_13) < (0)) __PYX_ERR(5, 6047, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_19 = PyTuple_Pack(2, __pyx_t_16, __pyx_t_20); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 4714, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; - __pyx_t_20 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_647stream_STDDEV, 0, __pyx_mstate_global->__pyx_n_u_stream_STDDEV, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[349])); if (unlikely(!__pyx_t_20)) __PYX_ERR(5, 4714, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_20); + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_811stream_TANH, 0, __pyx_mstate_global->__pyx_n_u_stream_TANH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[431])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 6074, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_20); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_20, __pyx_t_19); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_STDDEV, __pyx_t_20) < (0)) __PYX_ERR(5, 4714, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_TANH, __pyx_t_13) < (0)) __PYX_ERR(5, 6074, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_20 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_20)) __PYX_ERR(5, 4746, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_20); - __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 4746, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __pyx_t_16 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_16)) __PYX_ERR(5, 4746, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4746, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_6 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 4746, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 6103, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); - __pyx_t_2 = PyTuple_Pack(5, __pyx_t_20, __pyx_t_19, __pyx_t_16, __pyx_t_3, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4744, __pyx_L1_error) + __pyx_t_2 = PyTuple_Pack(1, __pyx_t_13); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6101, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_649stream_STOCH, 0, __pyx_mstate_global->__pyx_n_u_stream_STOCH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[350])); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 4744, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_813stream_TEMA, 0, __pyx_mstate_global->__pyx_n_u_stream_TEMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[432])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 6101, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_6); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_STOCH, __pyx_t_6) < (0)) __PYX_ERR(5, 4744, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 4788, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4788, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4788, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_TEMA, __pyx_t_13) < (0)) __PYX_ERR(5, 6101, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_16 = PyTuple_Pack(3, __pyx_t_6, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_16)) __PYX_ERR(5, 4786, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_651stream_STOCHF, 0, __pyx_mstate_global->__pyx_n_u_stream_STOCHF, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[351])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4786, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_815stream_TRANGE, 0, __pyx_mstate_global->__pyx_n_u_stream_TRANGE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[433])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 6130, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_16); - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_STOCHF, __pyx_t_3) < (0)) __PYX_ERR(5, 4786, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4828, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_16 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_16)) __PYX_ERR(5, 4828, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4828, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_6 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 4828, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_TRANGE, __pyx_t_13) < (0)) __PYX_ERR(5, 6130, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_19 = PyTuple_Pack(4, __pyx_t_3, __pyx_t_16, __pyx_t_2, __pyx_t_6); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 4826, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_653stream_STOCHRSI, 0, __pyx_mstate_global->__pyx_n_u_stream_STOCHRSI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[352])); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 4826, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_6); - #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_19); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_STOCHRSI, __pyx_t_6) < (0)) __PYX_ERR(5, 4826, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 6165, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_655stream_SUB, 0, __pyx_mstate_global->__pyx_n_u_stream_SUB, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[353])); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 4861, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + __pyx_t_2 = PyTuple_Pack(1, __pyx_t_13); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6163, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_817stream_TRIMA, 0, __pyx_mstate_global->__pyx_n_u_stream_TRIMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[434])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 6163, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_6); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_SUB, __pyx_t_6) < (0)) __PYX_ERR(5, 4861, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_TRIMA, __pyx_t_13) < (0)) __PYX_ERR(5, 6163, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_6 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 4894, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 6194, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); - __pyx_t_19 = PyTuple_Pack(1, __pyx_t_6); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 4892, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_657stream_SUM, 0, __pyx_mstate_global->__pyx_n_u_stream_SUM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[354])); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 4892, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + __pyx_t_2 = PyTuple_Pack(1, __pyx_t_13); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6192, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_819stream_TRIX, 0, __pyx_mstate_global->__pyx_n_u_stream_TRIX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[435])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 6192, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_6); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_19); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_SUM, __pyx_t_6) < (0)) __PYX_ERR(5, 4892, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_TRIX, __pyx_t_13) < (0)) __PYX_ERR(5, 6192, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_6 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 4923, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_19 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 4923, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 6223, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); - __pyx_t_2 = PyTuple_Pack(2, __pyx_t_6, __pyx_t_19); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4921, __pyx_L1_error) + __pyx_t_2 = PyTuple_Pack(1, __pyx_t_13); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6221, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_659stream_T3, 0, __pyx_mstate_global->__pyx_n_u_stream_T3, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[355])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 4921, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_821stream_TSF, 0, __pyx_mstate_global->__pyx_n_u_stream_TSF, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[436])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 6221, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_T3, __pyx_t_19) < (0)) __PYX_ERR(5, 4921, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_TSF, __pyx_t_13) < (0)) __PYX_ERR(5, 6221, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_661stream_TAN, 0, __pyx_mstate_global->__pyx_n_u_stream_TAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[356])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 4951, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_TAN, __pyx_t_19) < (0)) __PYX_ERR(5, 4951, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 6252, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6252, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_663stream_TANH, 0, __pyx_mstate_global->__pyx_n_u_stream_TANH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[357])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 4978, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_12 = PyTuple_Pack(2, __pyx_t_13, __pyx_t_2); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 6250, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_823stream_TSI, 0, __pyx_mstate_global->__pyx_n_u_stream_TSI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[437])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6250, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_TANH, __pyx_t_19) < (0)) __PYX_ERR(5, 4978, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - - __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 5007, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_12); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_TSI, __pyx_t_2) < (0)) __PYX_ERR(5, 6250, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5005, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_825stream_TYPPRICE, 0, __pyx_mstate_global->__pyx_n_u_stream_TYPPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[438])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6280, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_665stream_TEMA, 0, __pyx_mstate_global->__pyx_n_u_stream_TEMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[358])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 5005, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_2); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_TYPPRICE, __pyx_t_2) < (0)) __PYX_ERR(5, 6280, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_TEMA, __pyx_t_19) < (0)) __PYX_ERR(5, 5005, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_667stream_TRANGE, 0, __pyx_mstate_global->__pyx_n_u_stream_TRANGE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[359])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 5034, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6315, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 6315, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 6315, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + + __pyx_t_3 = PyTuple_Pack(3, __pyx_t_2, __pyx_t_12, __pyx_t_13); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 6313, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_827stream_ULTOSC, 0, __pyx_mstate_global->__pyx_n_u_stream_ULTOSC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[439])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 6313, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_TRANGE, __pyx_t_19) < (0)) __PYX_ERR(5, 5034, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ULTOSC, __pyx_t_13) < (0)) __PYX_ERR(5, 6313, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 5069, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 6352, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __pyx_t_3 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 6352, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5067, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_669stream_TRIMA, 0, __pyx_mstate_global->__pyx_n_u_stream_TRIMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[360])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 5067, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_12 = PyTuple_Pack(2, __pyx_t_13, __pyx_t_3); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 6350, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_829stream_VAR, 0, __pyx_mstate_global->__pyx_n_u_stream_VAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[440])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 6350, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_TRIMA, __pyx_t_19) < (0)) __PYX_ERR(5, 5067, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_12); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_VAR, __pyx_t_3) < (0)) __PYX_ERR(5, 6350, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 5098, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 6382, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5096, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_671stream_TRIX, 0, __pyx_mstate_global->__pyx_n_u_stream_TRIX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[361])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 5096, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_12 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 6380, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_831stream_VHF, 0, __pyx_mstate_global->__pyx_n_u_stream_VHF, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[441])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 6380, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_TRIX, __pyx_t_19) < (0)) __PYX_ERR(5, 5096, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_12); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_VHF, __pyx_t_3) < (0)) __PYX_ERR(5, 6380, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 5127, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 6411, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = PyTuple_Pack(1, __pyx_t_19); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5125, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_673stream_TSF, 0, __pyx_mstate_global->__pyx_n_u_stream_TSF, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[362])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 5125, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_12 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 6409, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_833stream_VORTEX, 0, __pyx_mstate_global->__pyx_n_u_stream_VORTEX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[442])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 6409, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_TSF, __pyx_t_19) < (0)) __PYX_ERR(5, 5125, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_12); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_VORTEX, __pyx_t_3) < (0)) __PYX_ERR(5, 6409, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_675stream_TYPPRICE, 0, __pyx_mstate_global->__pyx_n_u_stream_TYPPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[363])); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 5154, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_835stream_VWAP, 0, __pyx_mstate_global->__pyx_n_u_stream_VWAP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[443])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 6447, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_19); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_TYPPRICE, __pyx_t_19) < (0)) __PYX_ERR(5, 5154, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_VWAP, __pyx_t_3) < (0)) __PYX_ERR(5, 6447, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_19 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(5, 5189, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5189, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_6 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 5189, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 6485, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); - __pyx_t_16 = PyTuple_Pack(3, __pyx_t_19, __pyx_t_2, __pyx_t_6); if (unlikely(!__pyx_t_16)) __PYX_ERR(5, 5187, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_677stream_ULTOSC, 0, __pyx_mstate_global->__pyx_n_u_stream_ULTOSC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[364])); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 5187, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + __pyx_t_12 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 6483, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_837stream_VWMA, 0, __pyx_mstate_global->__pyx_n_u_stream_VWMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[444])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 6483, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_6); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_16); - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ULTOSC, __pyx_t_6) < (0)) __PYX_ERR(5, 5187, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_12); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_VWMA, __pyx_t_3) < (0)) __PYX_ERR(5, 6483, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_6 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 5226, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_16 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_16)) __PYX_ERR(5, 5226, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_839stream_WAD, 0, __pyx_mstate_global->__pyx_n_u_stream_WAD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[445])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 6516, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_WAD, __pyx_t_3) < (0)) __PYX_ERR(5, 6516, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = PyTuple_Pack(2, __pyx_t_6, __pyx_t_16); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5224, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - __pyx_t_16 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_679stream_VAR, 0, __pyx_mstate_global->__pyx_n_u_stream_VAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[365])); if (unlikely(!__pyx_t_16)) __PYX_ERR(5, 5224, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_841stream_WCLPRICE, 0, __pyx_mstate_global->__pyx_n_u_stream_WCLPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[446])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 6549, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_16); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_16, __pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_VAR, __pyx_t_16) < (0)) __PYX_ERR(5, 5224, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_WCLPRICE, __pyx_t_3) < (0)) __PYX_ERR(5, 6549, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 6584, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); - __pyx_t_16 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_681stream_WCLPRICE, 0, __pyx_mstate_global->__pyx_n_u_stream_WCLPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[366])); if (unlikely(!__pyx_t_16)) __PYX_ERR(5, 5254, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); + __pyx_t_12 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 6582, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_843stream_WILLR, 0, __pyx_mstate_global->__pyx_n_u_stream_WILLR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[447])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 6582, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_16); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_WCLPRICE, __pyx_t_16) < (0)) __PYX_ERR(5, 5254, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_12); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_WILLR, __pyx_t_3) < (0)) __PYX_ERR(5, 6582, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_16 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_16)) __PYX_ERR(5, 5289, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 6619, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = PyTuple_Pack(1, __pyx_t_16); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5287, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - __pyx_t_16 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_683stream_WILLR, 0, __pyx_mstate_global->__pyx_n_u_stream_WILLR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[367])); if (unlikely(!__pyx_t_16)) __PYX_ERR(5, 5287, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); + __pyx_t_12 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 6617, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_845stream_WMA, 0, __pyx_mstate_global->__pyx_n_u_stream_WMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[448])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 6617, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_16); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_16, __pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_WILLR, __pyx_t_16) < (0)) __PYX_ERR(5, 5287, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_12); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_WMA, __pyx_t_3) < (0)) __PYX_ERR(5, 6617, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_16 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_16)) __PYX_ERR(5, 5324, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 6648, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = PyTuple_Pack(1, __pyx_t_16); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5322, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - __pyx_t_16 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_685stream_WMA, 0, __pyx_mstate_global->__pyx_n_u_stream_WMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[368])); if (unlikely(!__pyx_t_16)) __PYX_ERR(5, 5322, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); + __pyx_t_12 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 6646, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_847stream_ZLEMA, 0, __pyx_mstate_global->__pyx_n_u_stream_ZLEMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[449])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 6646, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_16); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_16, __pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_WMA, __pyx_t_16) < (0)) __PYX_ERR(5, 5322, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_12); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ZLEMA, __pyx_t_3) < (0)) __PYX_ERR(5, 6646, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_16, __pyx_mstate_global->__pyx_n_u_TA_FUNCTION_NAMES); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 8, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_16); - __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 8, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_TA_FUNCTION_NAMES); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 8, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (likely(PyList_CheckExact(__pyx_t_6)) || PyTuple_CheckExact(__pyx_t_6)) { - __pyx_t_19 = __pyx_t_6; __Pyx_INCREF(__pyx_t_19); - __pyx_t_18 = 0; - __pyx_t_33 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_TA_FUNCTION_NAMES); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 8, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_12 = PyList_New(0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 8, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_TA_FUNCTION_NAMES); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 8, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + if (likely(PyList_CheckExact(__pyx_t_13)) || PyTuple_CheckExact(__pyx_t_13)) { + __pyx_t_2 = __pyx_t_13; __Pyx_INCREF(__pyx_t_2); + __pyx_t_23 = 0; + __pyx_t_35 = NULL; } else { - __pyx_t_18 = -1; __pyx_t_19 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 8, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __pyx_t_33 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_19); if (unlikely(!__pyx_t_33)) __PYX_ERR(0, 8, __pyx_L1_error) + __pyx_t_23 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_13); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 8, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_35 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_35)) __PYX_ERR(0, 8, __pyx_L1_error) } - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; for (;;) { - if (likely(!__pyx_t_33)) { - if (likely(PyList_CheckExact(__pyx_t_19))) { + if (likely(!__pyx_t_35)) { + if (likely(PyList_CheckExact(__pyx_t_2))) { { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_19); + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2); #if !CYTHON_ASSUME_SAFE_SIZE if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 8, __pyx_L1_error) #endif - if (__pyx_t_18 >= __pyx_temp) break; + if (__pyx_t_23 >= __pyx_temp) break; } - __pyx_t_6 = __Pyx_PyList_GetItemRefFast(__pyx_t_19, __pyx_t_18, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_18; + __pyx_t_13 = __Pyx_PyList_GetItemRefFast(__pyx_t_2, __pyx_t_23, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_23; } else { { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_19); + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2); #if !CYTHON_ASSUME_SAFE_SIZE if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 8, __pyx_L1_error) #endif - if (__pyx_t_18 >= __pyx_temp) break; + if (__pyx_t_23 >= __pyx_temp) break; } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_6 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_19, __pyx_t_18)); + __pyx_t_13 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_23)); #else - __pyx_t_6 = __Pyx_PySequence_ITEM(__pyx_t_19, __pyx_t_18); + __pyx_t_13 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_23); #endif - ++__pyx_t_18; + ++__pyx_t_23; } - if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 8, __pyx_L1_error) + if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 8, __pyx_L1_error) } else { - __pyx_t_6 = __pyx_t_33(__pyx_t_19); - if (unlikely(!__pyx_t_6)) { + __pyx_t_13 = __pyx_t_35(__pyx_t_2); + if (unlikely(!__pyx_t_13)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 8, __pyx_L1_error) @@ -86853,29 +104738,29 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); break; } } - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_name, __pyx_t_6) < (0)) __PYX_ERR(0, 8, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 8, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_3 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_stream__s, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 8, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 8, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GOTREF(__pyx_t_13); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_name, __pyx_t_13) < (0)) __PYX_ERR(0, 8, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 8, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __pyx_t_4 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_stream__s, __pyx_t_13); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 8, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + if (unlikely(__Pyx_ListComp_Append(__pyx_t_12, (PyObject*)__pyx_t_4))) __PYX_ERR(0, 8, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = PyNumber_Add(__pyx_t_16, __pyx_t_2); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 8, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_all, __pyx_t_19) < (0)) __PYX_ERR(0, 8, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __pyx_t_2 = PyNumber_Add(__pyx_t_3, __pyx_t_12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 8, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_all, __pyx_t_2) < (0)) __PYX_ERR(0, 8, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_19 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_test, __pyx_t_19) < (0)) __PYX_ERR(0, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_test, __pyx_t_2) < (0)) __PYX_ERR(0, 1, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /*--- Wrapped vars code ---*/ @@ -86895,6 +104780,8 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __Pyx_XDECREF(__pyx_t_14); __Pyx_XDECREF(__pyx_t_15); __Pyx_XDECREF(__pyx_t_16); + __Pyx_XDECREF(__pyx_t_17); + __Pyx_XDECREF(__pyx_t_18); __Pyx_XDECREF(__pyx_t_19); __Pyx_XDECREF(__pyx_t_20); __Pyx_XDECREF(__pyx_t_21); @@ -86929,17 +104816,13 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); static int __Pyx_InitCachedBuiltins(__pyx_mstatetype *__pyx_mstate) { CYTHON_UNUSED_VAR(__pyx_mstate); - __pyx_builtin_object = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_object); if (!__pyx_builtin_object) __PYX_ERR(1, 60, __pyx_L1_error) - __pyx_builtin_enumerate = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_enumerate); if (!__pyx_builtin_enumerate) __PYX_ERR(1, 82, __pyx_L1_error) - __pyx_builtin_property = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_property); if (!__pyx_builtin_property) __PYX_ERR(2, 130, __pyx_L1_error) - __pyx_builtin_min = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_min); if (!__pyx_builtin_min) __PYX_ERR(2, 598, __pyx_L1_error) - __pyx_builtin_max = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_max); if (!__pyx_builtin_max) __PYX_ERR(2, 599, __pyx_L1_error) + __pyx_builtin_object = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_object); if (!__pyx_builtin_object) __PYX_ERR(1, 64, __pyx_L1_error) + __pyx_builtin_property = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_property); if (!__pyx_builtin_property) __PYX_ERR(2, 129, __pyx_L1_error) + __pyx_builtin_enumerate = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_enumerate); if (!__pyx_builtin_enumerate) __PYX_ERR(2, 322, __pyx_L1_error) /* Cached unbound methods */ __pyx_mstate->__pyx_umethod_PyDict_Type_items.type = (PyObject*)&PyDict_Type; __pyx_mstate->__pyx_umethod_PyDict_Type_items.method_name = &__pyx_mstate->__pyx_n_u_items; - __pyx_mstate->__pyx_umethod_PyDict_Type_keys.type = (PyObject*)&PyDict_Type; - __pyx_mstate->__pyx_umethod_PyDict_Type_keys.method_name = &__pyx_mstate->__pyx_n_u_keys; __pyx_mstate->__pyx_umethod_PyDict_Type_pop.type = (PyObject*)&PyDict_Type; __pyx_mstate->__pyx_umethod_PyDict_Type_pop.method_name = &__pyx_mstate->__pyx_n_u_pop; __pyx_mstate->__pyx_umethod_PyDict_Type_values.type = (PyObject*)&PyDict_Type; @@ -86955,39 +104838,39 @@ static int __Pyx_InitCachedConstants(__pyx_mstatetype *__pyx_mstate) { CYTHON_UNUSED_VAR(__pyx_mstate); __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); - __pyx_mstate_global->__pyx_tuple[0] = PyTuple_Pack(2, __pyx_mstate_global->__pyx_n_u_real, __pyx_mstate_global->__pyx_n_u_price); if (unlikely(!__pyx_mstate_global->__pyx_tuple[0])) __PYX_ERR(2, 679, __pyx_L1_error) + __pyx_mstate_global->__pyx_tuple[0] = PyTuple_Pack(2, __pyx_mstate_global->__pyx_n_u_real, __pyx_mstate_global->__pyx_n_u_price); if (unlikely(!__pyx_mstate_global->__pyx_tuple[0])) __PYX_ERR(2, 672, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[0]); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[0]); - __pyx_mstate_global->__pyx_tuple[1] = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_mstate_global->__pyx_tuple[1])) __PYX_ERR(1, 60, __pyx_L1_error) + __pyx_mstate_global->__pyx_tuple[1] = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_mstate_global->__pyx_tuple[1])) __PYX_ERR(1, 64, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[1]); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[1]); - __pyx_mstate_global->__pyx_tuple[2] = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_mstate_global->__pyx_tuple[2])) __PYX_ERR(1, 60, __pyx_L1_error) + __pyx_mstate_global->__pyx_tuple[2] = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_mstate_global->__pyx_tuple[2])) __PYX_ERR(1, 64, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[2]); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[2]); - __pyx_mstate_global->__pyx_tuple[3] = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_mstate_global->__pyx_tuple[3])) __PYX_ERR(1, 112, __pyx_L1_error) + __pyx_mstate_global->__pyx_tuple[3] = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_mstate_global->__pyx_tuple[3])) __PYX_ERR(1, 174, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[3]); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[3]); - __pyx_mstate_global->__pyx_tuple[4] = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_mstate_global->__pyx_tuple[4])) __PYX_ERR(1, 112, __pyx_L1_error) + __pyx_mstate_global->__pyx_tuple[4] = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_mstate_global->__pyx_tuple[4])) __PYX_ERR(1, 174, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[4]); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[4]); - __pyx_mstate_global->__pyx_tuple[5] = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_mstate_global->__pyx_tuple[5])) __PYX_ERR(1, 119, __pyx_L1_error) + __pyx_mstate_global->__pyx_tuple[5] = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_mstate_global->__pyx_tuple[5])) __PYX_ERR(1, 181, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[5]); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[5]); - __pyx_mstate_global->__pyx_tuple[6] = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_mstate_global->__pyx_tuple[6])) __PYX_ERR(1, 119, __pyx_L1_error) + __pyx_mstate_global->__pyx_tuple[6] = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_mstate_global->__pyx_tuple[6])) __PYX_ERR(1, 181, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[6]); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[6]); - __pyx_mstate_global->__pyx_tuple[7] = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_mstate_global->__pyx_tuple[7])) __PYX_ERR(2, 88, __pyx_L1_error) + __pyx_mstate_global->__pyx_tuple[7] = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_mstate_global->__pyx_tuple[7])) __PYX_ERR(2, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[7]); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[7]); - __pyx_mstate_global->__pyx_tuple[8] = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_mstate_global->__pyx_tuple[8])) __PYX_ERR(2, 88, __pyx_L1_error) + __pyx_mstate_global->__pyx_tuple[8] = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_mstate_global->__pyx_tuple[8])) __PYX_ERR(2, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[8]); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[8]); - __pyx_mstate_global->__pyx_tuple[9] = PyTuple_Pack(1, Py_None); if (unlikely(!__pyx_mstate_global->__pyx_tuple[9])) __PYX_ERR(2, 286, __pyx_L1_error) + __pyx_mstate_global->__pyx_tuple[9] = PyTuple_Pack(1, Py_None); if (unlikely(!__pyx_mstate_global->__pyx_tuple[9])) __PYX_ERR(2, 285, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[9]); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[9]); #if CYTHON_IMMORTAL_CONSTANTS @@ -87024,34 +104907,34 @@ static int __Pyx_InitCachedConstants(__pyx_mstatetype *__pyx_mstate) { static int __Pyx_InitConstants(__pyx_mstatetype *__pyx_mstate) { CYTHON_UNUSED_VAR(__pyx_mstate); { - const struct { const unsigned int length: 11; } index[] = {{2},{1},{31},{26},{28},{57},{11},{11},{33},{26},{38},{31},{36},{55},{7},{34},{34},{40},{54},{50},{60},{28},{31},{47},{28},{4},{32},{37},{179},{50},{54},{57},{22},{22},{18},{23},{21},{26},{8},{11},{14},{21},{132},{1467},{35},{25},{33},{52},{13},{30},{30},{31},{23},{1},{1},{2},{1},{1},{1},{0},{2},{2},{1},{1},{4},{1},{1},{8},{13},{29},{11},{33},{6},{32},{33},{30},{14},{48},{35},{39},{34},{2},{4},{6},{9},{19},{17},{15},{17},{17},{10},{11},{17},{12},{12},{9},{15},{8},{4},{2},{3},{5},{3},{4},{3},{3},{5},{8},{13},{4},{4},{3},{6},{8},{17},{6},{4},{3},{8},{8},{9},{12},{3},{9},{14},{10},{14},{11},{16},{17},{16},{15},{11},{12},{18},{19},{16},{17},{7},{11},{16},{12},{18},{14},{19},{17},{9},{13},{9},{14},{11},{10},{13},{15},{18},{9},{17},{10},{18},{15},{17},{11},{11},{14},{10},{18},{14},{9},{11},{14},{19},{18},{15},{12},{14},{17},{16},{9},{12},{12},{10},{15},{18},{19},{4},{3},{6},{3},{4},{17},{4},{3},{2},{9},{3},{3},{3},{5},{5},{3},{8},{17},{24},{32},{30},{17},{35},{16},{17},{16},{20},{24},{32},{30},{35},{16},{20},{15},{18},{23},{25},{24},{23},{13},{17},{21},{21},{16},{12},{26},{25},{24},{23},{11},{10},{9},{7},{12},{12},{7},{9},{3},{20},{29},{4},{9},{15},{19},{15},{2},{5},{4},{2},{4},{7},{7},{4},{4},{3},{8},{7},{19},{16},{8},{3},{8},{8},{3},{8},{6},{11},{8},{8},{3},{4},{4},{4},{4},{3},{11},{18},{15},{7},{7},{18},{15},{3},{20},{3},{4},{4},{7},{3},{9},{8},{3},{6},{3},{4},{3},{4},{6},{5},{6},{8},{3},{3},{6},{10},{11},{14},{15},{7},{2},{3},{4},{11},{7},{5},{6},{8},{6},{7},{6},{8},{11},{7},{7},{6},{9},{11},{9},{7},{6},{6},{12},{17},{13},{17},{14},{19},{20},{19},{18},{14},{15},{21},{22},{19},{20},{10},{14},{19},{15},{21},{17},{22},{20},{12},{16},{12},{17},{14},{13},{16},{18},{21},{12},{20},{13},{21},{18},{20},{14},{14},{17},{13},{21},{17},{12},{14},{17},{22},{21},{18},{15},{17},{20},{19},{12},{15},{15},{13},{18},{21},{22},{7},{6},{9},{6},{7},{7},{6},{5},{6},{6},{8},{21},{13},{17},{16},{16},{14},{24},{14},{27},{25},{18},{17},{14},{13},{12},{10},{15},{15},{6},{14},{13},{7},{12},{18},{22},{18},{5},{8},{5},{7},{10},{10},{7},{7},{6},{11},{11},{6},{11},{11},{6},{11},{9},{14},{11},{11},{6},{7},{7},{6},{15},{10},{10},{6},{19},{18},{6},{7},{7},{10},{6},{31},{6},{9},{6},{7},{6},{7},{9},{8},{9},{11},{6},{6},{20},{19},{26},{23},{20},{11},{5},{6},{7},{7},{9},{8},{7},{6},{11},{9},{6},{11},{8},{6},{4},{6},{5},{4},{3},{8},{6},{3},{8},{5},{3},{12},{20},{21},{16},{19},{20},{17},{7},{12},{6},{3},{4},{5},{6},{18},{9},{1},{6},{9},{8},{15},{23},{17},{18},{5},{5},{10},{11},{12},{7},{4},{1},{6},{13},{8},{12},{7},{4},{13},{5},{6},{9},{6},{12},{12},{12},{9},{10},{10},{4},{5},{17},{8},{9},{9},{9},{11},{14},{13},{9},{22},{11},{16},{15},{21},{14},{11},{5},{6},{4},{4},{9},{6},{1},{2},{3},{12},{2},{5},{4},{8},{12},{10},{11},{24},{26},{7},{13},{8},{5},{3},{4},{6},{6},{5},{7},{3},{8},{7},{3},{8},{5},{8},{4},{6},{3},{7},{7},{9},{13},{3},{7},{9},{7},{12},{10},{15},{3},{1},{4},{8},{3},{5},{7},{7},{24},{10},{14},{11},{5},{6},{15},{4},{12},{9},{5},{9},{16},{10},{11},{3},{12},{10},{9},{7},{8},{8},{10},{10},{15},{11},{7},{11},{13},{7},{6},{9},{14},{6},{9},{14},{12},{6},{12},{11},{12},{7},{13},{13},{7},{16},{17},{16},{7},{8},{8},{6},{5},{10},{10},{6},{11},{6},{7},{12},{6},{3},{11},{5},{6},{6},{12},{24},{6},{8},{12},{9},{4},{5},{10},{5},{10},{9},{7},{8},{7},{3},{7},{8},{3},{1},{6},{4},{6},{17},{16},{15},{12},{14},{10},{11},{12},{12},{10},{12},{12},{12},{12},{9},{10},{10},{10},{7},{9},{15},{11},{9},{10},{12},{10},{11},{10},{12},{15},{11},{11},{10},{13},{15},{13},{11},{10},{10},{16},{21},{17},{21},{18},{23},{24},{23},{22},{18},{19},{25},{26},{23},{24},{14},{18},{23},{19},{25},{21},{26},{24},{16},{20},{16},{21},{18},{17},{20},{22},{25},{16},{24},{17},{25},{22},{24},{18},{18},{21},{17},{25},{21},{16},{18},{21},{26},{25},{22},{19},{21},{24},{23},{16},{19},{19},{17},{22},{25},{26},{11},{10},{13},{10},{11},{11},{10},{9},{10},{10},{12},{18},{17},{16},{14},{19},{19},{10},{11},{16},{22},{26},{22},{9},{12},{9},{11},{14},{14},{11},{11},{10},{15},{15},{10},{15},{15},{10},{15},{13},{18},{15},{15},{10},{11},{11},{10},{14},{14},{10},{10},{11},{11},{14},{10},{10},{13},{10},{11},{10},{11},{13},{12},{13},{15},{10},{10},{9},{10},{11},{11},{13},{12},{11},{10},{15},{13},{10},{15},{12},{10},{3},{17},{17},{15},{16},{17},{25},{28},{26},{21},{23},{14},{35},{23},{21},{23},{12},{14},{5},{13},{8},{9},{9},{10},{11},{11},{11},{8},{5},{4},{11},{6},{11},{5},{5},{11},{6},{7},{7},{6},{11},{101},{101},{170},{168},{148},{101},{106},{15},{121},{173},{173},{22},{115},{135},{174},{166},{115},{167},{261},{79},{497},{261},{241},{363},{70},{55},{64},{285},{143},{56},{48},{51},{324},{104},{69},{18},{214},{209},{258},{174},{44},{7},{13},{13},{17},{17},{21},{13},{13},{15},{344},{209},{209},{117},{117},{117},{124},{209},{237},{328},{175},{209},{201},{328},{138},{328},{143},{183},{118},{222},{133},{155},{202},{240},{134},{134},{134},{202},{157},{134},{207},{193},{193},{116},{115},{207},{36},{138},{96},{78},{121},{80},{19},{27},{34},{341},{187},{286},{304},{217},{254},{255},{18},{160},{223},{164},{193},{115},{22},{116},{195},{181},{151},{151},{97},{117},{126},{101},{97},{100},{94},{108},{95},{101},{116},{96},{93},{100},{93},{96},{184},{184},{184},{182},{184},{188},{182},{177},{183},{193},{183},{193},{183},{193},{193},{359},{259},{255},{255},{243},{247},{255},{297},{190},{167},{168},{200},{138},{163},{151},{151},{271},{153},{152},{138},{163},{138},{163},{212},{163},{195},{137},{163},{266},{298},{307},{312},{316},{297},{308},{318},{298},{302},{308},{306},{306},{312},{312},{308},{164},{246},{165},{197},{218},{165},{209},{165},{28},{347},{174},{287},{370},{336},{310},{253},{330}}; - #if (CYTHON_COMPRESS_STRINGS) == 2 /* compression: bz2 (12620 bytes) */ -const char* const cstring = "BZh91AY&SYU\276\021B\000\035>\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\300@@@@@@@@@@@@\000@\000`9\375\335\275[\262\300\000\361\3620\203\320\373\267\231\312>\300\037@\372\350\371\322Mw\331\301\361u\367}\357\275`\373m\357{\217Z\214\237npd\264\025=\331w\331\335k^C\247`\000 \006\364k\275nkn\344\333\266\316\3578\036\274\257u\322\016\303\271\222\306\263\0052\354;\233oD\236y\236\315\316\000\350\013\317\214\250\017 \000\000\000\200\005\354\313\267O\027\336\334\356\310@\366z\022\370\360\222D\t\0022`&La\023\310\311\222\236\311\241\232&\004\ne=54cjj\031\352\233SC\310\t\351\250\000\000=A$@\010\010\232#CI\246\t\221\223S\324\311\246\223\364\336\252\247\344j\203\324\362OH\007\251\241\232\215\r\251\247\243A\017I\203)\265=O(\365\003L!HI\245\001\240d\000\365\r\000h4\365\006\200\375P\000\006\2314\000\000\000\000\006\200\001&\224B\010\322d52m&!\252zz4OJ~D&\215\030\206\200i\352\000\0324\000\000\000h\000\320\032\010\222\021\021E=&\215\017P\332\237\252oJ~T\310h6\023OM$\332\215<\247\351\261\246 \251=LO\324\233\304\311\252oJoQ\352<&\221=Ob\024\365\004JD \030\322b6\246#M\r\002\030\210\312i\351\244\002cS\3214\032\030\200\r\000\006F\215\0324\311\220\037j\001\t\003n>\341\346C\322\371\375\0269\307\305\220&\004qOF\264\303\235\033\317\005\017\002*$\014\342\262P&\275\227 \225\325\201@\265\214\020Z\240\230\007\225iX\310k4h\016\035B\301\333\314\035\206O\216\225\006R\214\205\361|\000u\000N\266\000\262\004P\202$\225\tP\220\254\210TPdD\220\002@\025)\210\253 (\311 }{a%\266\000D@%@\n2H,\"\210H*\026\202\203w\270xI\335\375I\372\376\"xq\216\377\2133/\330|%[\267\371HENX?\260\236Fe\032\345\230f\212\243\376[\310jU\210\204\236\026\311\257K0x+\247A9\346r\014Y\272c\213\200\232\347d\362\342\305\214\361\377\301\242\177\260\020O\030\276E\273\345>Q>d\313\"\331|\2721\014-\340\350%BU$\252\227L\340\010^\010\332\222\3261\033\250\305\022(h%\006@\241\206\000F;F\3522O\001^G\300\003A\024\000\250B@\\\323\207WQ\375|\246\277l\027U\n\327\375h_\242R\353\345\017\366\253\014\035\255?p\273\013\367@\353""\323\014~\004]\200}\273\334\177\334\214\024t\277G\177\365\177\301p(\353\265\356\377\305qS\034\303\014\306\274?\344.\203\023h\014\230\215\273_\276.F,A\306\016\327\341]\031S-ZH\307\374\316\0212\202\323\370\016\006\2715r\221\333\377\240O\211\226\246x\033b\212\277\211\024Q\343\2453ZP?\204\\f4\312\344FM\006u\374@q\327\030[\022?\030\261yb\332\022&\277\215p\305\255\215\266\225\016\257\344U&P\311\341\023\371Qp\233\\\341\035\232,\307\363\n\005\311\357BN4\233\376\241h\366\3726\3434\177\330\3123~\327*\033\275?\356\266\217A\306(\374\212Z\306G\036\004\345\017\347Z\312\034\016\014I\206\033\377\n\006\252\033\033H\376\204>lD\3507bGW\364\2129\2634\2728\r \346,\343\036\275\353\312\207\365\"$\016<\010\3641\375p\216\343A\036\354!\035O\354\321\361\311g\355\246n\320\032\023?,\031\231\230\343\343\374\333\225\304\003W\327\247\325\304\253\354\334\025\333o\374\2351\355\377o.\2661X\257\316\271i\325\274W\376\216EM\2403\037\241p\351\322x\221\377\265\311\215\371k\266\032_Y\034\270\233\351\010\373\003\215\271@\177\322\263\266\360\375Z\307\247F\213\343\353\227%\264w\310\237>\323&\256\343V\365\232\366\254\330c\251\217j'\\\371\231ts\266|9\217\316m\244\367}\233\246-\314)\317\r\036\\\370q\332\237)\233V\273\350sS\347\256\324\231\245\013lc/$\214B\304\001\211\006 \306\227:\356\327\255\311\213\023\367_\006\177\026\035\313\322g\223$}\014\020\345\337\255\267&\255\371\367,]\2717s*\355\3749\032x44.eW\271\335\273_[\\\222\2448v\244\301V\336,\032\327\36271\030\261n\350ga\213WwN\226\244\374\255\\:\250KM$T\022\337H4\304\215 \025\365MJ\032\3245\010n\253\324\017b\365#\322!\235C\235\023\270\003\316\217\235N\364{\0244\210l\007\244^\224-\007\240\003X)\342\t\310\t\250SR6\204bK\020\214I+\311-\321^H\304\"\252\nb1\010\250\"\240\212\200p\"\262\\\300\253\244\254\010\341\026\000\276\030\225\224\261 \345X\205lX\205*\013v\255Z\253\300\376N>>8\267\3531K/\030\027\021\321\325\270q\347>\024i\3729\225j\363-\304\357\363\351n\234\264\216\235#[8\307\246\014y\345*j\334\362\276\263~x\315\266\347\256w\356<1\2773\204r\037\333\303w\366\306X""\317\262\020\371\271\313yi\337#Z\277\267lE\371\315\365\366\215\341\323=\251\355\r\337\206\274}\253\201W\366\234Tw\204\274\201\316{S\304\034u\346o^f\2239\232O\231\241^k\"]\\\317\023\032G\336Zs\322\334\363-\277\315=\376n\027\347\235\227k\177\"\324\313D\275\353y#K`\311\224\227\"(\355\350\343A\215!\030\314sli\327\243\307\307.m\235}\375H\356\361\303:\225\253/{\350\355n\301J\225-\312Svv\373\3245\267e\005\232#I\005\261J\212\250\342\024\340\234\023CeJ-\204\274\001i.AJ\211Q*,\251T\241D\224\266\245\026\372*\251Q(\033\351o\243|\n\200TU\025@\250\251\206\360\267QH\245d-\234\213\202\325\242R\274\245\205`,\026x\345\270]\344\257\330\221\355\017jf\022Bc\021\004!\025E\221EI\000\005$\010@fa\200@\230\366\305nX\333\222\345\276^^[\261r\362\344K-\231r+\327\267o\213\203\203\213\227C\203\223\207\035mN\036\016\016\010\3707\260\2400#\002:\221\324\216\240:\2722\3651\354\334\314\335\336)\357k\024J;\305*t\217\001\231N\235*T\374;\224\351\352n\323\247\270S\335\247Nm:si\324\271\017\210B\021\267\355U\203t\254\025\225ec\357\004\234HQ\250\324db\341A\302H\214\220\311\010\324c\324\301q|\301\202\301b\310\242\220P\"\310,\"\254Y\"fG\357U\013*\241\010\250dd\226F\242E\222\006\3134\000\254\023\0052I\000\3423\000\377]\237\315\233\004\327v\236e=\237\r\2506\207\264{\023\372\244\231\250\200FL\231\016/r\333u\004\017\265!\030\244\0220\005\273w6e9\0035\346\360f\034\313\274\201\236\002\310\310)\276\224\241\367x\000P\332\022\242H\031,\273\316\027\nv!\213\241\212\201ed (2\004\001\266\306\333\023\2311\241\215V\020\205$\220\2442c{\255k$!L&\375\244?H\311-D\030\243\021Z\004\221\326kq&zz\000\212\010\204\334\026\227\243|55\375\353,\335\030+\022\311$\035\334t\324(\2230\200\326\370\340\327H\271{!\020\272\034D\006\022(\200V\004\006\322F0\010\244\347:BlC\201\016\023\204;p:\215\267\357\"\212I\301\t\270\336,6h\250\243\257\t\200\340\033\304\025H\244\014a\210C\201\210\272\315\035\\V\321EA\032\241\200ba+\225\032\253\262RJ\212\334\324/~\360\336\261F\206\315\220\177\006\302\r\215\242\343\013\002\001XZ\001\2225\321\006\246j\240[D\262""\326-\021\223%\253\00346Y\327X\323q\034\031\030\023D,\232C8\354\231n\204\n\310\335\006\3427F\340\267,\030\001\201!\027\374XO\001\303F6K5\230\200\316'\343\272I-\312\200\255+\002A`,!\0265\021\252F\246\331$\261\200lf\357\253\271\230\013,\257P\222%p\272W\221+\020i\244\026IY,\222\021\222\014\026?\227\026\333\031\r\220\204\262A\221\214\001\271r\245\354\326\020Q!\020\220\222\017\346\304\335\346\200\335dd\006\267\3106XX\272\306\001\026\321\033\026\n\353\006&-\014\346\023\016\200\330l\212\300\351VH[\270S\375\350B\374a 2\237\374\200\207\241\350\003\327\202v\275\033\234\376~|\363\237\3073fE\352\254\354-}\315\026\350ga\260~\277\327\372\351\365=?\352\270\177\0143\370\367=\2421\233<8kL0\353\331#O\303\033\025\211\362<\354\315\005\030\250\023Pr\030\245\013\374\276\311\220`\256\267\247\311\211\344\321\2442\\\n\021\332\377^\035Ve\226\217\006\207\342pv]\327'%\247\340\213\356\213\265\1771A\306\321\366\274!\032\263\333_\317\0326\307X\333\347[4 \366\357\277\337\224]\347\245 \375d\351\321\317)\220\235\355\027\311\255\t`+\205\007>\t\217{\236\351\214|\220\301\233\035\021S\251a\305c\367\325U8A\216*\265\201\351\t# \366\001Y\"b\247\327G\310\254Z_\334\242N\314\301(\270\036\310\215P\2400\205\307W\306[\313\n,\261\010\021\006\010\323oIN\330\300+\235u\262\222@\212\010\242\261Ec\312s5\311 \313\362~@\350\366\232\204G#\231nlY\026IP\250nn-\320\254\222\334[\240\334\307\237\366\034\357\277\301\366\366\331\000\277\234]};\2048\007\003\201\303\373\177\272\204\006\330\005\325_\350\025\334:\260\260\260\006Pr\237\223\263|\344\2043\371d@L80\220p\007\321\372\016\027\t\203\3741\250h\340\330L,D\247W|\307\\\256\235\223\026,\tb\330\035uri\253\204xR\320\306\332Y9{\231\265\330x\324;\315\244Xn\337\301\331\311\362\237T,y\334\341\377\010\354\020E\263\206\276\322[F\301\234\321\3145\032WI\235\017#\210\351\021\342\364\275\305\016\215\323\336\326\035e\313\260\230\200\022\317>\336\330~ p\t""\260\335\377\\!\3700\240\377\367^vi\237\321\333\347\371\325\345\371\334G\024)\223v\264\203H\013:;\"4W\370\300\026\320\3007xl\267}}m\247\333\235\200\361\337Z\255C?p\240\340\321\024\375\035\0304N\202rZ\326X\253\230\334\372Z+Pq\357i)\010\010\364\001\231\242n\037\332tT4\256\0248\311C\366\270*\372\261+.\353\267\031\351 fC\223\312\332\316{\017\036\354\225c\276\037G\325\266\033\3534\332h:]\004#\323\371\337\303\002C\201\303)r2\253o\333h\303L\303E\353a~\223NZ\267\330\0337\376%\257\313\256\315\345\200\010\3562@i\210.\232Q 4R\244=x\260\2768\273\203\224\016\340\316n\233w7\267F@\004\321\004WUP\000\221H\010-.\004{\026+\3068Cx\332\335\214\032\332f)\2465q;\363q\237\t:\317\337\364*\374\236\377s\233\234!\312\033\340\037\224>b\203]\013\220\220\366QE>\024\302}\224\364\247\272\230O\nySD\373n\024*T\362\246\021N)\224\302|x\241\3054\020\342\232&SrnM\311\314\237-8'\004\346ORs&\344S\202pNd\346E4M\351\362\223D\347Nd\312nM\221M\311\332\236\366\371\271\232h`\326$\236\354\370b\025^\356b]\374\3434\t\213\202\332v\347D\351\227\200\315i\2568\340\302\270\233\240\222V_\347\267\241\307w\035\336+\027\035\265\033o\2161#\361\362\364\372TI\267\301\360|\001\356\\\244\276\251\2419a$\221\222$\n\017)Q%\n\034o(\366\3630\322\275L\036\226\246\211q\243\330T\205Q]Ln\267\234U![\002\344CU\020\307pa\345CM\320\271\353\035\234|~Fo\330\370\262\202q\337\t\241CHr\260\204\022\201\245\241N[\035\001\033=o\252h@\346}\361\272\324\334x\200\320\301(i9\257\326p\346\331\364\336av\207\231\272\302\317KG\243\314\236l>\357\221\024^D\231`,^Ss\325\323\261\031\312w\246\351\32544E\032\326\260\212\214c\031\251\254&J\353\202\200}\nH\223@=J\002tMF\r\272\251\276j1\\\2232fMHe\025V\223\351Rf\302\262\204\323\022\034f\262\275\255\352\361dx*{\375t\240\323\323\305>\365Ce\216\354\337\247\005\362\303x\354;;\036\303\2556>\343\241C\245vBD(\033\n4)\263\333\314\211\326x\227\333\347\274m\200n!\272D(\356\224\224\335\352\034ZOShfc\273PI'8\374-cX\341\350\250K\256j\006!D\260\343C\320qi\304\2160\311\004\240\344JS&q\340`\342`9\2324t4\264\270\3265G\034{\340\334X\202\016g\234>\224\304\251\036\374\244\223t\360YIr\233\223\336f.\224\363\304\306-\262gYH\306$I\306P\262M\262s\316>\014\024\232NN\206\321\336kh\301\270\300\031\273\270\025<\001\030\301\357\030\355\273\367\217n\203\302|\323\323<\337v\367\007\0079\331:\307V\315+\312\204^d\244(s\030\261\332h\205I\316^\277Np\366z\225^\332\257\261\270\327W\030\356i6f1\246\246\357\025W\302\326f\303\306\325)\026\274-/\014\327\240^\232\370\204\305d8U\315\230\252\315\314\230d\331\251\2536\242\244\351\333\332\333\0219\266:I\241\355m\262\335u7L\371 kW^\311\346\016\316\374'\200\236\343\024hv\030Jv^\036~W\267\321\327\222\345\322\3139\0215\220{\204B4\223\254\232\022\212H\306\023 X\306\304`L\3061\206\025YuUU]&\2631\356\3206Uf\226n'\261\231\r\371\264\256\232\344\306\322\206\370\300=}\261\335/\335t7q\345K\016\330\304H}\276\243\362t\0109$\014\227@\354\017\310\357\355\3611\353@\347\235\235\022\025\241\321\361\222\325\324\322n\236\030A5\017$C{7Vf\257\036\256\372\262\232\356\373\253$\024\nU\337AEa{\366\202wf\214\363\314Y\247\322\312D#\2436\226\031\331\340\260\256\234-v\262\302\250\250\275\362\212\270[\036$\304\n(\342\004\342Adw\354\321\013pw\032]\225\264]\272\351\026\321\274~\177\273i \234\n\224\002Pu\214\327\315\3246\215\036g\224\257\310\247\036\206\242\2574\251\332s""\275.\240\251y\033\263\031(\035\3500\315\357\302\215\232\367/Q\230\246\031\247\030\221\216VWU3\037L\347\262\360\236Ff\252\025\264;\247\020a}\207f\354\320\323M4\261\324\204u\211\035l\351\231&n7\010fb\006\177dHHz=\372\252\004\007\326\264\022\267\345I\352\207\250\326I&s\334\361yt\336\0047\2331H\242\224 \216Q@\007TM\r\034\341|\315\340Z\321\010P\0040\3568\\%kv\262\250\326\\\256\370\006\025,\"\321,K;\270\271i\225\324\346\341\363\021\rE\244\243\264\353j\333*\n\330@\213\336\324\255c[\272s\346\000\350v\233\242d\351\324})\323\321H\240\242\346\271\027c\367\360\341QFK6\005B\"\233\3461\205\237;\341\334\256r>C\253\237\031\210\203\277\033\362v\263\244g\372\231RYY\346\342'7\017\362\236'\362\363\367\365\327[\344\230`l\020\326&~\342A\341G\272/9\254\rn=H\363\200k\205\023ZMxu\331\354t\344>\010]\273w\345\027{i\031;\311\007b\352\352VNv\326Jr\023\037\014|K\272\231B\031'z\331QE\310\362\232ai1g\262\233M&\263\204\301\214\233\246g1\355\250\373\221*\216\210\354\303k6\330\317w\206\035\345E\245\214/*\326\007\231\217C\030\026\236D\3207^wP\005T\300\240\316\217$\023\337\014\004 qF\212'\205\257u\275\233^V\213\216f\236\233j\035\315W?\270\347C\231\302\315\300S)\357M2\217&\342E\024&TG:\216\376\256\211\207?ml\033k\212\355(y\252y\240\354\321@\246\253\357C\254o>\237{\226]\330\271\0174\213\327>\327\232\004Vo\345\3705\1776\361\256c|\016^\016\332\336%\341\nR\230\363\332\330\361b\205\255\214\021\256\221\313\020\244\312\031\361w\246\334:\036\334\216\212\375/\343>c\346b0\350\343\263.\025J\323|\270O\272\335\027\204\266\371\035\367je:\304\213G\266K\032qu\254\347\323\277r\271\360\332\261\357\355\247W\007\177V\365\365moG?\247\364\376\227\006\275\373\371\246l\025f\313\303T\227\\\316*\303Msyr7\023\237F\330\363mI$c\026i*+\204\327bs#\275\232\332\230\232\014\323,(,\2152faI6\215$\321fCY\246\2367\222\304q'\224\226k\324\"\310\335\235@\277\0010\346\315\014E\225'>\201\342\3765[=\317v>\311\323\321\323\323yjt\037\023\273\350\020\003\310<\201\362\017\201\021=*|\013\3607=\306O\301\355hcG\337\026>\267\020\326\374\206v\363S\251""\363c\347\234\365\027\036p\3329\033\264k\251\247\251\336tW$\220\204\233\345\3004\244'(\207~\217m\323H\202iL\332M)\247\253\347f\262\244\344P\316\211\0038cOS\307\3314v\351\240\346\252K\315)Z\236Q\270UU3 {x\350>_\tB\345\353\324\314\346L\310fs\016e6&\302\355\274\354\236w\347\302\321\016E>(\205\014\354\367^|\\\315\271\371\246OK\016f\252K\254\271.\213j\006\217EV\226\333\354\333\313\254*q\003\214\\\222\206Bd\260\304b\0352\251\022\247\261\205u\327!I\"p\200\025\225W\\\205-0\t\245\322\006\227\223<\236\324\276.\025\260\203F\307\232\375\215\034k\032\244\304\237R\"R\013U3f\033\002\302\313\004\324\370\234'\322\267$s\317Q\215\014\210\301\3103=\256\221\310\231`\006#\017\023\275\301\361'o\246\206\3707\305\211|y\375\220\253|\016\010\001[\350\241p\207 \032\203=\206t\316\3473\206\"\334\370\374y\374\032\0049\211\214\003*\004r\204\323\302\017\024\001'\t\303\212\300,mK/\275=F\243:\207\331\033\205a@\300\r\202\304\261%\231\375\301\365\217\211\310\000H\216CH\250\230\314n30\3410\342\007\037\r\037\306\205e\313\205O\262\030\2041\310\010\035\320\036\351\322\007JHq\016>\303\337\247f?\234\217*9\024\244\236\211\306\001\316\020\370,\234\240<\276\247\221UTT|\307\232\\*\343~0\252\252\305UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUx\231#\214P\266\201j\372<\2777\341\323L\354c\024\373\234C|>\217\224\366\276\237\311\215`y\267\027\202\252\252\2568s/\035\007\265(\032\261U5\265UUQU\312\332\252\252\252\212\212\274\255\330\345\343\370\264\370\367\335\266(o2\030\230\312\344\267\024\373\031\366\214h\252\252\212\367N\356\3239^R\325\315\252\252\253\233%U\330\265pKUg\356\370\253)03\014\314\314\3155\257-9\221\371+I\031ro\2239\325u`j\267\335\311\274\321!\365\037y\207\275\314H\342\035\230\256\322\034\271.\313\245\314\236\303\356O\007q&\260\374W\214O\201#\320}\275\356\re\262\335\356\200\210Y\335x\230z\261\202\330)\367\276\233\353\340)\365\377\007M\214\271k\322\325\352\223k<\342\314oC\206\024A\322\264A\331\330\250G\034Z*q\023\377\205\320\351\200\344\306\371p\275\0358V\366\014}\311\0207 \341\337W\233^4\347L1T\\\233up\337\242\256""\302\035\006\271]\262\014\242\306L\342q\306\204\036\361[\317\013\024\031e~\250\310\214j\026\2239\236C\336\240\0277\275\236\275k\240\320t\037/\361\205P+'\241\037%bx\257\336\016\033\367\314\0211\337E\006\215\220\014\303\026L\263\271F\361h\203M.X\234\017c)#4\002\001\205\016\004\300G\355P\007h#\tU\353\351\203\303?E\350Mo\3306uqzBj\004\217\254~\314\317R?\245\365\242\013\200\366\262\304\tg\304-\013!\374\256\302\233\341>\310\032\303W=\264\232\246\345\273\255\335o\315\337!\340\020\307_1y\240\220\010!\313\226\3773\226DH\014\220\342\354n\327\247\2240j _\364?'\254%\326\267+\324\357\030\3704}\317\217\005\371$w6\2179a\233'\034\366\207\010@bDY;\240\360\233\270|\324Fx\232\352n\232\227\253\246\206\355j\001\222\231\246\275\251\215N\334a\363F\272\260?p\014\364\244U\023!d\331\rut\335\273\205\311\027\r\215./\330\337\033\365!\216\340\030\010\0341\037\037\253\275\002\223\352\237R\200 N\022\367Q\002\361\010\353,\221\"\0308\251\316\340(\364X\0361\013|\0232\030\314\345QZ\230 \034\210\222\311:\022i\226S C\243\032\020\202\375T\224\031\266\253\255\226\300-M\013\332\335\263\250\3603\345!\352\220@\341s%@J\342\333\323f\237X\327\n\365\025$o\354?&!\226\013\251\363\013\202fC\205\013\211\212\367d:\306\260\035\360\357\244k-Aw\355\023\213\246e\267\270,\215\260\006\225\216\221\341\342\014\254d\030\035\336\240\272U\304]\211Y*\333^8\345\003\303\261\216\003E#\366\362QK\2748\232lgD\362\002qv\361\017\263\235\n\t\350BT\372/X\252\037f0R\261\251k3\\\0353d!&\010\020v\254\340\320\035:t\350\355\371\236nC\3536\031K\207}u6\211\234H\347\t\361\342\311\216\021-\245N\262\314b\ra`\365\321\005\227\315\360\373\326\344\372F\220\361OOl\027\312O/\265\221\234Vwz\311\233<`=Jn\326\342\254\275\304Ex\361\3653'\\\r\250\376\337\034\2600\024lC\347d\203\nrU\333<\242\271f\022 \366\0142\035\342\215\357D\000\3203\000\310\240P\240\212\t\024\022\252\006\332\n\250UW\tWs\3536\226x\250v\236\375\312\303\262W\035\212\366+\003\261'g\273\222t\366\035\033>\032\303\270\n}\336\347XO\227\201\025s\357\333\344\311\013\271\323\211\223\222<\371\014\020r""\t\253\355\016\246\017P.\322\3503,\322\277N\317\367,\006x\027\333\235\251+\241\352/\236\337j\370\316\316V\302u\225\350\275\373\222`\366\014\201\010\372~\353*Z|CM5\374\345\023L\273\233j3\026p\365\336~\212\235\030{4\2248\272\316\273\343C\354\325\023\350\370W\246\024F;g~\222\316\262\344\226\213\035\030\006\323k\372\345.-0\207/\331\206\226\037\257f\314s \233\344\307=\346N3x\250A\201\221\264\020\355\236\335\327O\227\304\320\016\310\216)I\210\240\275\3726Jv,\276\213\273\034\365J\022\017\264\300\022\016\366\235\035\021\026\311\211\205[\366\027\003~\346n\347E#\337\255\250\020d\314\310\345BDFUy?H\3649S\304\354\303nn3\271\227\276v\342\264j\334\347\025\031\025UD\025\231\251gt\221\004\372IB\204U\001\224Tj\030\367LGi\350>L\034~^D\313\210\263dVl\226x\240HAc'\244\345\314\225X6a \257e\2343{\211*\351&U\302\275\240\3611@\340\360\rKYM\202\007e33\222\247\2652z8G\351\310\306\335\007-\2770-\004\326F\3318MW,\341P\373\356\227\317\265$\023\251\253{\207\211\007\211x\222.!PE\302R\344\323+m:{\206y\205\247\nzL\023\320\304\363\\H5]\241\261d(\226\241ni(\322\252\006k\245\336[R\324\274h\273[\271\265\256\361\251\357\361\364\344\234\247\016r\321\205\245\252+\214A\032Y\347\361\370\347\216\006\331\275\334\206\262=\225\025W]\n\341\306\245\252A\265e\272\370\210za\r\225\004^\264G\270u:\t\204\306\371!G\366S\331_\241zz\320X:X\315f\242@a\2437\250\025\327D\312\275\307p\367w+\360\034\206\257 \246\367v\213\227\n\302\345D3\t\310$NE\344\367l\306'D\353\360V\217\327\353\245\300t\224\250\370\215\005\310^_\261{\2647~v\343Q\241\017.XH\234m\237\322\307\253\300\274\325\367Px\227b\372\221\3176\014\203\307\177{vi_\247\227\t\366\225\312Xh\372\357S\251\004\214\332\365\264=\370L\204a\347\205\030\200\310v\314\332\341\236\010\251B\216\352]\377\211\317_\204q\206\nLp\355\261\006A\001\223|\366\213Z&S:\335\010\220\002\233\000\231\233\331\003^\337gt\272\357\0143\030\322\274\206\032\307\025\327\333\354\276\262:\224\203u\321\036\265!M\210al\221De9\003\322n\036\020\\)\025UR\255T\252\255b\247\02144G\005w\217O\255.U#\rHx\t\017\000\236""\035\341\315\357d\001\306)\217\345\253\327\230\302a0\370\036{\265\324\313\235W+\014\002X\014\260\310\032\243\246\224\261\206\303\237w]1\251\254\333\333\250\333!y\273@5\006T\014\246\244\324\032\216a\2644\347\314\357\205^N\232P\257D\241\341\230KD\201hg:\010\231e\"H\021\204|\375\300{\372O\0342k\210{}\254\250\3450\304\035m\024\366.\363\331\027\271\354{5)Q\325\220\272]\300\304\313\373\232S$d\252\227\3324g\026\240\320P\007 \302\360\t\246\250yXr\330\360\373\376\277\253Bj\306\333rO\014\020\016\014C\213Dn\010\305\027\rH\026\014\244\203s\005\352T\275\010\363\232\200\324\233,\324\370U8JQ\337\271(:D\345Fv\326\002%\3666HZ\355N^+\206K\327\257[\346\246\337gT\016\357d\227]\336\260\311a\233'\023\262\035\311\261\002\000\356%fB3!\212X\233\022\354\360X-n\363\035\344[9IM\017\231AtR\021\257\n8\273\300\214\376m\016\204\351\3331\373u\342\252\2200\t\234\030t\023E\233x\374I)L\344\240\327d{\230=ld$\255\322\201\242V\030L=\353M\236\374\365\375y\330\366\230C\325\203\303\317\t\310\371t\204\225?\025\240tp\262\375\003\242\270\222r,WJ\266\t\225M\001A$\303$A\214\322\024\231\211q\251\001\233X\016\246\314\231}$\001\366\247i\217=\353\215M\343\321\177!\356\247\315\254\311\230H\311\001e\207@\235i\271\351\235)u\333M\320\202\030\302\n4\nHB\262\035\214\3739;k\351\301{spi\302T\035*\370\035=\034\346,\312\035\315\222\240\324\006\261#\255\232\314n\010v\361KbM\025\324\032r\363\3648`\303\345o\200\302\016\001\367Y\301q\376\3620\0379\246\231>\331\356/*\373\001\256\204\313{\341\005\263\033 \233!\0332\022\276\277gX\346\031{\002*\322[\262\335\200\311\230\303\363\245Yq\271\214\372\261\335\220x{b\214\237\311M|]VQv\366\302\004\031\373\212\236Z\230RsN\220f\030\216\351\372\205\253z{\320 \317\261\330\346\221\373\206il\331G\037\037*\314\370[\2521z\355BMg#\305\272\036\220s\223G\251\257v\243\014\334\0252?i\004'\3270\240\273\345\032J\323\265C\333\333\333\346\272o\263$\334+\235i\332\263\264\235\247\241:\233\313^\357o\253\231\347\177;`\356\256\r\335\0363Y\036\024\217q2\325x*\356\241UY\330\361\261\340\351/\331\023\265\365o\230g""\230\264\275\241;\235&\305\016\237\017O\000\244\314\233\215h0{\220\342u&\203\362o\310|\215\320\212n\335\273\253\357\301!\305\320\247o\255\214F0Q`\010\254PP\214Tb+\251\332\014\315R\315\021S\2445S\352#\003\264\227`\r\330\335\226\014\376N5\210\037\027\321\343\362<\035\320\014\200\020\360H\036\225\244\257/\n\013j8\350\252\266r\257\357( \234\375Y\020C\217D\234\236\212\213D\271\010`\030\000\254\2201yfr\014I$3V\216:3\\\213\372:]\201\267@\322\226%\306\352.\354\345\327\210i\235z\300;\301\023\274=\343\300w\025V>\271h\243\021Y\353\243\212E\307\034\230\266\230\226X\010\344\360$\370c\010T\360\035\247\025\320/L\276\01049\367M\260\214\226\235]\333.\033\216\324\004\023\264\243\201x\343\017{\2158\023Q\211(\304\032p\363D\3641\347\211\265\300>K\202\264\231\222a\236L\350DI'\014&\363\312\207T\310\007!?\370;l\230\301i\222@\275\371\205\225\001^\337\274\027X\031m\235\257=3\244\320\304\260=\271\017)<\250u\001\326\364\241\260\367\266\371\245\201L\005\177\220\254\235\363b\007`\004;\013M\257o\257\300C\270\337\343\355m\331j\353\030ox\330\037\305+\021+\n\302\026\214B\207\274B\261'\n\375W\314\216\267\335cF\357F\350.\031\264\332\2128}\004\002\007\336\033=\"\0335\247\241\265\244f\212Bq)\356\274\336YT\236<\033\261\344\252\245\215\037\314/^D\324\006\266\2456!%9\203\335\307\255\247E\332\264v\207l\361\233\260s\272\336\020\005Q\\3\361\317\254\007\266;=\240\370^\023\370\236\027\261\210?{\353s\337\374n\306%v/\207\362z\327\300\354\234u\003\335C\233G\257\234\034\333\335\336\236\373\227.\237\027\246\216V\306\010\327H\345\210Re\014\370;\323m\370\275\253\246n\313,\237\333G\322\221\215\231\255\364=-:\305BE1\206\302\317\025\013\372\313z\232\214}\265t\021\237\n\303\2075U\027\210o\253\300\260\3407\301\323\304\337/\274\234G\346(\031u\337\255\314c\342\245O\014\275\335\354\250\261C\020\330\207\036.w\224\374\317&\222Y\202\263\021\317\216\322\225\025\215\351z\315xQp\2119'""\237\001\237\254\317\371\302\316d\321L-\206it2\237y'S\366\023\370\276\265\017\236\321=)\253!\237\255\2565\326\3055\023,\220\223B\241e\202\315\026\221\023U]\252yx\340\241\206\250\033@Y\001\232\004\212\024\251\263\223\010\270DRnn\356,\037\360x\346\215\n\362x\220\022(\201\361\300_:#J\305\010\n\021B\"\260f_^\220\361\204T EB\021`\n\035\266 \251\322\362\">\341\016y\344\245\202~\341\333e2?\2662\t E\0141`I\030\375\036\336a\333\030|\306\317\027\332\271\311\336R(\211\233U\312H\021G\322c\261\204?\357\027\377\206\037\323\217\250@\014\020\014\301\013\314\242\243 \242IPg\242\035B\203\320\3735\370 \207\303\014\317\372\323\033\000C\323`{G\327\177kk\372\207\304im3Kk\226\027\314R1*X\221\337\254Z\370\360\235_\257M}\217 }\260\221\334\201b\025\224\275\345\313\332\301h\321\031%B\211\335O\324\000\234\265\363\0002\n\310,\200\201\361@\220\017Nx\224*\240~J\017\264\303\241\032\201\360\217\375AU\362\016\316s\235\0062H\206\001\310\332\272\r\330\313\231b/\245\200\210\274\201\311\035\222\257\205\336\313\353\356\001\030P6\001\210\310\223\300\326\264\255zn]W\227\322\027\210\310\323\205vU\360O\273\345\276\257\247\220(G\000\303[\275\370\205\352}\335\233\364\025\3424\224*A=\314'.2\345\236\273\204\252T\202_\2364\347\241\314\014z6m\037\027\303\325\350\274^\274D-\3270\353JpZ.\222\2169\202\343\230pm\027>9n\214\\ \013\211\227!\357JJ[>QJ9\234y[\224\370\276I\245\302R\t[\362rZ-\016\036:\320\343\325o\213\307h\366J\222\202\025l\235\022Z\006|~\241\326\365\324*\337p\237p\366)\347sW\332y$M\250\217i\330\207\340\017\225\264(u\257\337\211;\016\312\023Y\244?t\177\250\344Uq\237<$!\242\345\227\351\345.\020r\331\362yR3\231\t\026\030\014\346H\244o\370\376\200\356\344\334i3\2405L\257&\244\374f\237\321\006\334\376\210r\273<\335\332\377\207_\017\222\335i\336c\255\301\266\244;\257og\2303\230\352>p\2670\240\352\237\205\352\235;;\304\253Q\366:}\377\\}\362\326\337\"Z6\224v\376\357^y\307\344\010\357\222\305\353\322\347\316\311\366B\033\344,OW\333\353\035q\262Q\356Qr\250\252p\267\333\371\231\003\237<\242z\322^\204\274/ {d\036\233;o\244\220Rr\007\216_\261<\247\232\236\3428\242b\316c\333\023\333\031Ye\253&\350~\177\214\244\201#\332\233\210\234\261S\347T\342\203\204\037\235\007\330\000\374\242\374\002\036 '\202'\355\240}\365\017\266\203\373 \007(\017\032\247\032&@~\242/\357\003\343\027\240\017T\003\363\252\033\302\236\252\007\000=\364\177\030>\312\277\320\247\242\2175O\254\017y\0177\245\252\177\224\325:v\340\243\233.V`%\200(d\206\030\231zU\203\226\261\253'\014\274{\006\324\023-^\247\016[\227%\202\025\344jK\266r%m\330\201+\315\026\362\310i R\310\254\265\025\210A\261\210e\274\315\267\230q\340\020Z\027d\220\3173\005d\241\0243\231\2300X\263\210\253\200\273x\251D'\030\220@\014\000So#\256,B\023\202\263\020ev\035\241(\020\206)u\270\304n\033\202\270b+\030,\216\343i\272\315I\214\356\334""\305\250n\r\201\260\322\205(@\201\020\n\034\003\223\270\320\016\264\013\3023\025%y\002'\025\202\330N\322\021\010\233A\013uCsN\325\350\270\032D\313sF\224qXk\354\335\236(\216\0015f\234eY\364F\304\"\246\000\210\000\216\343e5\031<\307I$U\247i\350\202\204I\2102\014\203\n\22482\315\264\270\302j\342\022\203,\204XdiG`\004k\030P\224\310\005\201d$\230\270\345\2634\215\315\323\231\272\334\254\260\2066\300Hid\202\010-\024DDF\354\245\013\206]\265\270\232lk8\316\327\367Q\346\264\352\352\307bLf\367\022w\020\300\347\263~&W\315|9\246\177-)\375\230\306!\314\205\302\323\203\205Mspt\323x\340vk\035\032(t4{\311{\326z\335\374\340\255EU=kW=}y2w\255QO\241\363\376=ws\254\351\344?\021\352\035\350\316\320\221)\0335\017\n\\\266\230\340\342\274\\`Vq\214;\253\035\340\220\302\3144;\312\341\000\212c\205{|\016(\000\216I\031\266r\230\270\201t\000\302\241N\342\334\232\323\247\271\221\032w\036\356\221\247@a\020U\240\342@\344\313\306be\240\260\346D$\273VwmE\n\313\333Z\254V\005\202d)\342\223&\034\361c\272V8\333k\204\035A\343rO\023\033$d\220\003\2304\320\211Aw\343l\227)yQ2\212X\016N\014H\265\t\025\"\025\024\026\203J0\024\220\260@\214\031 \222\226@\241K P\264\201B\226Ie\241)-\222\311K\tB\224\201d\264\241CT\211IT\001I\021\211T\2455H\323\024\020H\thJZIc\001%\241,\020\006Z\022\302\322\005\002\330\005\222\330K\006A\001 \201\350\262X\220f,\222\205\262K\022!K!Ii\013\006\002ZB\244\020HT\205-\002\313am\222\336\001`l[\234Y[\034\342\204\257\037\331\037\321\n\372\272\340\177{Y\346~\304?\265\274~y\244v!5\376\314\254\233z\261\032\022W\353\353\207\251\272\242\324\360\301\332\301\241\344\213\226\013zNGy\201\230fff\337v\356\333\215\256.=\356\033\361g\326\327\257\206\324\217\321\377\305\334\221N\024$\025o\204P\200"; - PyObject *data = __Pyx_DecompressString(cstring, 12620, 2); + const struct { const unsigned int length: 11; } index[] = {{2},{1},{84},{35},{31},{26},{28},{57},{11},{11},{33},{26},{38},{28},{31},{36},{19},{55},{7},{46},{34},{34},{40},{54},{50},{60},{28},{31},{47},{28},{46},{28},{4},{32},{37},{179},{50},{54},{57},{29},{22},{22},{18},{23},{29},{21},{24},{26},{8},{11},{14},{88},{21},{132},{41},{1467},{35},{25},{33},{52},{13},{30},{30},{31},{23},{32},{35},{1},{1},{2},{1},{1},{1},{0},{2},{2},{1},{1},{4},{1},{1},{8},{13},{29},{11},{33},{6},{32},{33},{30},{14},{48},{35},{35},{39},{34},{2},{4},{6},{9},{19},{17},{15},{17},{17},{11},{17},{12},{12},{9},{15},{14},{17},{2},{8},{4},{2},{3},{5},{3},{3},{4},{3},{2},{3},{5},{8},{13},{4},{4},{3},{6},{8},{17},{6},{4},{3},{8},{8},{9},{12},{3},{9},{14},{10},{14},{11},{16},{17},{16},{15},{11},{12},{18},{19},{16},{17},{7},{11},{16},{12},{18},{14},{19},{17},{9},{13},{9},{14},{11},{10},{13},{15},{18},{9},{17},{10},{18},{15},{17},{11},{11},{14},{10},{18},{14},{9},{11},{14},{19},{18},{15},{12},{14},{17},{16},{9},{12},{12},{10},{15},{18},{19},{4},{3},{3},{4},{7},{6},{3},{4},{6},{3},{17},{7},{4},{8},{3},{8},{3},{2},{9},{3},{3},{3},{2},{3},{3},{5},{5},{4},{7},{3},{8},{17},{24},{32},{30},{17},{35},{16},{17},{16},{20},{24},{32},{30},{35},{16},{20},{15},{18},{23},{25},{24},{23},{13},{17},{21},{21},{16},{12},{26},{25},{24},{23},{2},{3},{11},{10},{9},{7},{12},{12},{7},{9},{3},{20},{29},{4},{2},{3},{9},{15},{19},{15},{2},{5},{4},{2},{4},{7},{7},{4},{8},{5},{4},{3},{8},{7},{19},{16},{8},{3},{8},{8},{3},{8},{6},{11},{8},{8},{3},{4},{4},{4},{3},{4},{3},{11},{18},{15},{10},{11},{7},{7},{18},{15},{3},{3},{3},{3},{20},{6},{3},{3},{4},{4},{7},{3},{3},{4},{9},{8},{3},{6},{3},{4},{3},{3},{4},{6},{5},{6},{8},{3},{3},{10},{6},{10},{11},{14},{15},{7},{2},{3},{4},{5},{11},{7},{5},{6},{8},{6},{6},{7},{5},{6},{8},{11},{7},{7},{6},{9},{11},{9},{7},{6},{6},{12},{17},{13},{17},{14},{19},{20},{19},{18},{14},{15},{21},{22},{19},{20},{10},{14},{19},{15},{21},{17},{22},{20},{12},{16},{12},{17},{14},{13},{16},{18},{21},{12},{20},{13},{21},{18},{20},{14},{14},{17},{13},{21},{17},{12},{14},{17},{22},{21},{18},{15},{17},{20},{19},{12},{15},{15},{13},{18},{21},{22},{7},{6},{6},{7},{10},{9},{6},{7},{9},{6},{7},{6},{11},{6},{5},{6},{6},{5},{6},{6},{8},{7},{10},{21},{13},{17},{16},{16},{14},{24},{14},{27},{25},{18},{17},{5},{6},{14},{13},{12},{10},{15},{15},{6},{14},{13},{7},{5},{6},{12},{18},{22},{18},{5},{8},{5},{7},{10},{10},{7},{11},{8},{7},{6},{11},{11},{6},{11},{11},{6},{11},{9},{14},{11},{11},{6},{7},{7},{6},{6},{15},{13},{14},{10},{10},{6},{6},{6},{6},{19},{18},{9},{6},{6},{7},{7},{10},{6},{6},{7},{31},{6},{9},{6},{7},{6},{6},{7},{9},{8},{9},{11},{6},{6},{13},{20},{19},{26},{23},{20},{11},{5},{6},{7},{7},{9},{8},{7},{6},{6},{11},{9},{6},{6},{9},{7},{7},{6},{11},{8},{6},{8},{4},{6},{5},{4},{3},{3},{8},{6},{3},{3},{6},{4},{4},{3},{8},{5},{3},{5},{12},{20},{21},{16},{19},{20},{17},{7},{12},{6},{3},{4},{5},{6},{18},{9},{9},{1},{6},{3},{9},{8},{15},{11},{23},{17},{18},{5},{5},{10},{11},{12},{7},{4},{1},{6},{13},{8},{11},{12},{7},{4},{13},{5},{6},{8},{9},{6},{12},{12},{12},{9},{10},{10},{11},{4},{5},{17},{8},{9},{9},{9},{11},{14},{13},{9},{22},{11},{16},{15},{21},{14},{11},{5},{6},{4},{4},{9},{6},{1},{2},{3},{12},{2},{5},{4},{8},{12},{10},{11},{24},{26},{7},{13},{8},{5},{3},{4},{6},{8},{6},{5},{7},{8},{7},{3},{8},{5},{8},{6},{7},{9},{13},{9},{7},{12},{10},{15},{3},{10},{1},{4},{8},{3},{5},{7},{7},{24},{10},{14},{11},{5},{6},{15},{4},{12},{9},{5},{9},{16},{10},{11},{3},{12},{10},{12},{9},{12},{4},{7},{8},{8},{10},{9},{8},{9},{10},{10},{15},{4},{4},{11},{7},{11},{13},{7},{6},{9},{14},{6},{9},{14},{10},{12},{9},{6},{12},{11},{12},{7},{13},{13},{7},{16},{17},{16},{7},{8},{8},{6},{12},{12},{11},{6},{5},{10},{10},{6},{11},{10},{6},{7},{12},{6},{3},{11},{5},{6},{6},{12},{24},{6},{8},{12},{9},{4},{5},{10},{5},{10},{9},{7},{8},{7},{3},{7},{8},{9},{10},{10},{9},{3},{1},{6},{12},{4},{6},{17},{16},{15},{12},{14},{10},{11},{12},{12},{10},{12},{12},{12},{12},{9},{10},{10},{10},{10},{12},{7},{9},{9},{15},{11},{9},{10},{12},{10},{10},{11},{9},{10},{12},{15},{11},{11},{10},{13},{15},{13},{11},{10},{10},{16},{21},{17},{21},{18},{23},{24},{23},{22},{18},{19},{25},{26},{23},{24},{14},{18},{23},{19},{25},{21},{26},{24},{16},{20},{16},{21},{18},{17},{20},{22},{25},{16},{24},{17},{25},{22},{24},{18},{18},{21},{17},{25},{21},{16},{18},{21},{26},{25},{22},{19},{21},{24},{23},{16},{19},{19},{17},{22},{25},{26},{11},{10},{10},{11},{14},{13},{10},{11},{13},{10},{11},{10},{15},{10},{9},{10},{10},{9},{10},{10},{12},{11},{14},{9},{10},{18},{17},{16},{14},{19},{19},{10},{11},{9},{10},{16},{22},{26},{22},{9},{12},{9},{11},{14},{14},{11},{15},{12},{11},{10},{15},{15},{10},{15},{15},{10},{15},{13},{18},{15},{15},{10},{11},{11},{10},{10},{17},{18},{14},{14},{10},{10},{10},{10},{13},{10},{10},{11},{11},{14},{10},{10},{11},{10},{13},{10},{11},{10},{10},{11},{13},{12},{13},{15},{10},{10},{17},{9},{10},{11},{11},{13},{12},{11},{10},{10},{15},{13},{10},{10},{13},{11},{11},{10},{15},{12},{10},{12},{3},{17},{16},{17},{21},{15},{16},{17},{25},{28},{26},{21},{23},{14},{35},{23},{21},{23},{12},{14},{5},{13},{8},{9},{9},{10},{11},{11},{11},{8},{5},{4},{11},{7},{6},{11},{5},{5},{6},{7},{7},{6},{11},{4},{8},{9},{101},{101},{170},{168},{148},{101},{106},{15},{121},{173},{173},{119},{22},{444},{115},{114},{135},{174},{101},{115},{236},{167},{261},{79},{497},{261},{241},{363},{105},{55},{64},{285},{143},{56},{48},{51},{324},{104},{69},{18},{214},{209},{258},{174},{174},{44},{7},{13},{13},{17},{17},{21},{13},{13},{15},{344},{209},{209},{209},{209},{268},{117},{117},{117},{117},{179},{124},{209},{309},{209},{237},{328},{117},{175},{209},{201},{328},{143},{161},{133},{133},{138},{328},{143},{143},{133},{183},{118},{222},{133},{155},{148},{202},{240},{133},{134},{133},{134},{169},{178},{134},{134},{202},{157},{134},{207},{193},{193},{193},{115},{116},{115},{207},{36},{138},{96},{78},{121},{80},{178},{19},{341},{187},{286},{216},{232},{163},{187},{217},{304},{187},{225},{217},{254},{386},{255},{304},{353},{419},{18},{266},{160},{223},{185},{164},{193},{115},{22},{151},{116},{181},{195},{181},{151},{151},{150},{97},{117},{126},{95},{101},{97},{100},{94},{108},{95},{101},{116},{96},{93},{100},{93},{96},{100},{184},{184},{184},{182},{184},{188},{182},{177},{183},{193},{183},{193},{183},{193},{193},{201},{251},{359},{259},{255},{255},{243},{247},{304},{243},{255},{297},{298},{190},{167},{168},{200},{138},{163},{151},{151},{271},{168},{153},{152},{138},{162},{163},{138},{163},{142},{212},{163},{195},{137},{163},{266},{298},{307},{312},{316},{297},{308},{318},{298},{302},{308},{306},{306},{312},{312},{308},{53},{48},{231},{324},{164},{246},{165},{197},{218},{186},{165},{209},{165},{209},{28},{372},{174},{52},{53},{287},{370},{336},{310},{236},{265},{330}}; + #if (CYTHON_COMPRESS_STRINGS) == 2 /* compression: bz2 (14672 bytes) */ +const char* const cstring = "BZh91AY&SY\330\270i\331\000&\335\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\300@@@@@@@@@@@@\000@\000`C~\357>\033\347\274f\200\000\370}\332\234\020:\016\365\271\275\355r7@\257\260\r\335\367}Y\243_o\276\367|}\327}\236\235\357|\356\270^v\343\267\337p\357\222\371o\257i\262^\275\337|\317\217\263\237';\351\267y}}\314\0017\337l\200\013\340\003\342O\273\327\267\251\336\275\267\237v\367\313\236p\372{\306\276\364\216=\333\215]\231\317g\235{\336\336\027[\275w\270w\336\356s\341\364K\337c\031\333}\323Mv\307K\217\271\334iezz\365\355\272q\225\000\017t\000\006\213\335\265\235xyD\251_C\003\357\034\0267\307\302I \231\000\310\003\023\020\030\232i3C\023\001\004\320\2312Q\344\3652\306\356\345Y\364\372zoht\322\263\267\025\r\013p\357pf\\\267\"\010\037\317\243]\376*\325\270+U\247\253\245\273\263^\362K9\013A\"\352\rB\360\250\001lUQM\033\201E\027PPH\332\025T\035 ^\025\344^E\260\274\027\205\300\256\n\352\274\227\032VExEt\026\000\260+\000W\002\270\025\321\\+\205dq\013\204\\\007\005\260\352.\235@Z.\027K\313\230\347\\\341\316\034\352\331\320\027\372\313\346\002\345\336{\177\264\027\274=\351\230\020\t\030*\251\010(\211 \200\004\200\010\262(\314\314\014\314\314\300$\007\2762#\006\014\271\217Jk\320\346f]\273&\356\030\313\247]\343\003L\300\374\253\367.K\271\2037\251\350\272\260H\300\365\336\216\213\275#M\325\212\337_O76\224\256\216~~\253r%[\205\3736\270me@dFDw\243\275\035\350;\373\347\314\332\245WI\332\026y\023ZV\213Vi\034g""\035\245d\262Y*,\353E\245\236Y\343\262W9\rk\\k^\311k\214\264m\330,\026mZ\250Z\264n\362Y\265\313\312x\214R<\202@\225\216/\035m\355\357y\320+G@t.\205^\\\236o0=2d\023&^\0273\231\314f^\372\235\3632\350\r\001kiF\361\360{$$BD1\022(\244\024\204Y\005$U\213$\213\017\337\340'^$E\27122C#`R\360H\270\3132*\340\030.\030a\200>\311\352\232\227\357\365\377\2437}g{\217\221Xf\202\303\270G\232-\372\377\004\231\023\322\004\247\317\236j\366$\240TS1\030\244\000\214\020\013\357\3336\305\333\r\254\001\205\200m.\320\351\210oDY\031\024}d\225\017\223|\024\034Bb\020\030\\\267$0\013wR\014\006\013\201\275\274\021-!\025SW1\236b1\021)\326\037o3r\t\002\300H\220@\220E\rns\254\t\0047\204\351\274\2071\231\221\252\014Db-\222\004.\323nE*\002\2744g\001\210H \034\026d\233pKK}\0222\336\300\304 \224\204\222\332X\206\346\362(@\355\366\336\275\216\356/I\016\207N`6\323J\004\261\001J \245DT\225B\021\202,\200`@\300.51\270\323*\231\035lx\306@\220](\016#~AX\0344V+\2779\200\347\016bDVE\2040`DT\020F@7\230\233\226\3576\356\343\214\255\265\245\245\325&1d8\220\327\006\034\203u\251\234Y\266\226\333A\274m\3055\277\360\026\347\0239\2423'\243B\206\203ER@\270\212\001x\352)\222g\324Q\220\300\314\201LA\027\311\344'\204Q\003$\002A\310,\306\0318\010\352\t\320\204\300b\240\271\212\310\222a\207B \027.\201t h]\n\350/\014@\200\021p\374\370\263BCR\014\353\231\314\010\346\250\3710\024\016\201p\r\365\336\0107\243x\251y\235\034\352\347-\325\310C\034@\212\263L\347\2313\n\231e\205\300V\225\340\030!\205a]\345\"\304\033\301/S!W%1/\017\361\306\375\\r# \020\310\034\214q\023A\201q\205\361x\r\242\255+T\037\327\215\2236\"hr2C9\205\301\314\333}\321\261\275\300\006\265\256@\213\003\\\264B`\344'9\021 \006\341\361\220\353\021\250aC;\210\001\255 ]r\210|\201X\231\254\376\260\020\335\335\002?9\020=.\203\007\356\216NMr\016J7\036,\340\251\227\0360O}y\373\253\3514\017\001\363|\3377\243?\017\245k\001\362:\037\006^\326\320\342M\361M\361\276;tl\020c\037~\"\317\376\305QH@{\016uRq{\313\347\003#\006\020\t\327\234\205\275\316i\216\017`+\242\300B\324\227\261\205$""\2417`v\211\007\351}\356\302\210\0141g+\277\344p\014\217e\204\242c\375/m\001\252\237\347\022,\026-\235\\\347\3150\246_\241\362\336\332\016\300Z\343H\n\263\336\325\351o\273\007\263G)\014~\327\362F\030\210S+U\014\036\357\2378=\367\320Re\357\017\213\317\3147\rv\345\210\301\331.\017\274\177\256\370\221\275q\321\202\030a\213\337\334\217\303A\003\202\216m\372\341\324\210\276[\325$w;m\236#\3573\004\340:\2534\361\271\252\350'6\307\344-y\007\312\325{E\203Q\241`'j\2100\203\340\372\271\314\234\252\207\327\203\366\313\320'\303\352{l\326o\020q#\304;\347C\226\272\364\206\030\013""\022\224\016\262\020\310\222\240d8L\233R.Ba\212yS\223j\336\244f\252A\245\201\2052\034\022)YKUF>\266@\234{-33i\371gV\323\230M@\263Q4\022\377\220:'\024\03063\206e3&\301\305\220\321\235\034\362I\037\254\307\367\310\314\333\231\314\373\337\243!\226\032\250\207L>\215]\316,\200\311\311\035#\244\\_\253{mM\267:\256\331\206\030\037i\223P\324\270\372\235\014L\017\305\256\027\227\211z\202\030\206\256/k\004s\213\210k\340\3408(\255\373?f'\331}\272\216y\002\365Q\316\001\201q\250#\022(>oC\"j*\005I\025\032\347q\361X\357\031\367\372\220\361.\2042\004dq\005!J\036\027\277\234\324xBIC\t\234\202/X\323\224\3207s$\n=\342?Q\227h\001\250\007\307Pk\222^+\212O\263\366l,\005iT\226\243\243>\377\275_\265o\035N`\321M\215\363\257W\357\374\000\247\351\000\217\352g\314f=i\250\343\274D\302\375\344I$D\021\205\204\342\024\212\313\301\366\277\303\217\220y\346/\326'o\335\372\347\325\201\255\312\022x\370\n\r\367 \\\"\346\022G\362@\252v\351\343\372\362\003\000\245l\004\215O\347\177\272W\346\006'\022\362\300|\244}\203\367\315m\003vA\177;\203\355d\022I\356\000\\\024\327Q\203\344+\316\345\003\260\334\22597\264`\274\266I&uk<\313\257\364P\240\031\204\273x\334\024\r\t\300\3618\001Z\350\210\332\001\214\216!\022\332\264\301f%\315b\322\020qF\006\240R\001\317\020D\001\241PJ\t'\033\235\243'\030K\3158a\014\3166\201\301\202IZ\272=`\021l\300fP\326\363\037o\317\014$\246H\210J\300o0\230\013\0107\321\316YB<\225\321Y|\321\306Hc\222EU\003j\004\341\211\277-I!2Hm\211\253\034\347\006\364\320\356\020\201\026\204\324\300f\020\212 \330}6\360c\252Ur\225\313@\323\241\260\273\323\271bS\312\201\036\266\206\245|\020\000\036\020\036\030\210\"\t\206B\224\361\264\004i\217}\357r\260\320\177#\321\321$\236\375\306\200\302\370,tz\352F\342g\312\253\365\024i\210\224\210k&D\335\243\303\226\221_\362\376\255\374\220\314\221\032\251R\230\202\230r r\234\242\232\276S\353\035\360\3479\0259C\231H\022%!\314P\252\321\367;\236\217\223\322\236\304\304\361\372\345&i\244S\310\212)\346L'\331O\302Oi0\236\242{\t\244\370\034\350T\251\345L\"\235\023)\204\371\030""\241\3214!\3214\231N\023\204\341:\247\304Ni\315:\247\306N\251\302)\3159\247T\352\212i9'\262\232N\302uL\247\t\2720\305\rW\300\343qF\373\313\030\020\210\332t7\277\262\322ZI\236\2604[\036\001\230\343\022\013\234\360\316Npgl0:\026\270\361(\242\343\261\204P\243\361prI\307a\002D\324\377\014\375\006\014\314\031\231\347\n\001S\027\266\203u\303\267\260\333\342\224\210y\246X\260\263 Y\221\273b\261X0*\215h)\200\025\n\251\014\311\230fL\005\034\305\025\315&SkWwy\270\332/m\222o\267\016\020\343p\005\033&\325\3648\266\301\211\3078\330k\311\225\\N\200z\361\224\327\247\231\326c\211\310\352\234\220\361\315\311\t\315!\006 Hb\306\033yyo\216\242\2129\316q\214c\334\330\336s\232\227\2612b\252\347\210\232:\210\214K\306p\2755\2501\027\"&\226\035\245H\250\004}?\037\262;[~\337\331\346g\027\323M3KLa\322=b}a\353\000\366P\366|\334\236G\021\365\273\346\243\230@\344NadX\220\205\0175%{_N\307t\223\262\367\\\035\240`:]\230\341\354R\260?mR\343\332h\321\243\312\372\215\347'Dx(E\3070\010\275\007\314\207\\\331\360\340\327D\356\341\204\244\226\207\034`\002\213\021\24021\006v\314\337\0038\231\\\243L\302\220/5=T7\201\300D\004be0\234\214\r\031\341=\237\204\014\214\203\244QhE\331\013\317%F\244E\320\2065\230l\230V\206\300\275\362\210(\000\310\213\340\030\340\261I&b\263\363\2515P\376\376(\010O\005F\3231\242\020\316\223\rv\025\360#\332\007\276\007w\267\334\003\337\277h\202zI\342$B1\204#%\001\304R\325N/\330\361\246\337\034\366\255\271mv\326\267\254\274\363\333J\323\032\253m\301\250\305#\226&\331f|\035D\254lMc\347[F)1\311m\325(h\342\345\335\325\177\302&\204v\r'\031\217\007\263\365r\211\223\361\302\005@9UUi.}\320o\253\303\254\203\314\235\370BI\031 \300\241\357\226$\224Cy\274u\367\230q/\256\301\351l\322^\323\343,\205\242\274lp8\\\326B\346\004\014\202\223\220E\247\010\230\266\343n \207\250V5um\232\337&\244\344\205<5\020\303\002\304TR\303\3051\032|;\352\370<\312\275\353\003\333%\366c\370\007\233\t\351\212\315\2403_0\236\2457\001\020\324\334\233\006'\212\264\270\305v\204\222\306\243\025\330s\014\305\005\263\362\320\241""\017\323\002\366\223I\223f\271\253\320T(!P(\t\034\341\364\374\007\361\3474\"\361/\034\201\010\021$\032N&\244\256<\207\226f{\217T%\331\357\276\254uP8\033\373\303hT\301c\327\304\014\030\022\203)\207K\231\345q\205i1\324x\302\346\207\217Q\3564i^jJ\322\345\342\227\303\337\343\204\201,\301/D\004\212Y\031\254\360\220(\342y\214\316\246\002\010$\024\3477=\252\252\252\261\261\305\205\301\326h\037u\254&+\211\016F\203)c\261]Q\254\3365\206&\014\350\030\357,\212EiIc\003\025\031\346\317h\252A''\260\2405-\t\024$\030%S-\375\343\327\341)\034\334}\037]\230\0373\325\374\035\014\342wn8,\267h\327VY\226\371-.\243P\360\370|/\204\350\023\300\236\371\314\251\337G\300BE(8Ie\236\030\366\270\0217\236\201\021\352\232\256\251\355\372\301\212\246H\346\010\022\"S\"a\2223p\216\306\371\314\356\004t\331\n\021\0065\004EL\317\\|\r\203p\345\357\226\006L\016\355%\246aQ\312n)\354\033z\034\312\031\307^+Hk\255J5\311\356\355\216\253\0073\001\335i\247\211\255\342\366\341\264va\344\201\255a\010\010\266\267\324\017\023\355\265\267U\0223:\\*\025\207r\313\016\3666N\251\361\031\213\265>,Lb\333&w\224\214bD\234\244\204\253mFg7N\204\215n\253\274\356\016ML\2605\232\321 1\2265f\271@\234\014\2310\254\211\224\22521\260\026(\036&\306[nO\246Fl\331Y\265\n\326\235Yy|D\320\357\274BIHxO\334\222O\276\347P\3367\351\035]^\303P\214\0240=\336\375$\272\223$\237\203\241#{\275^\360\265\003twf| \372\265\363\001C\257*H8<\0138mB\307F\032 \220\232d\"\216Ss&L\300\356\235f\342\2063\033A\2755C\014\303R\260`17r\213\203\005\252W\013\342_\021\243t\023\200\016\030\220\214\205\017\010T)\341+\207\353\352o\353V\306M\273\212\272_M1\326\0320(\370\010\200\242\304\244\2362h\224RF0\231\002\3066#\002f1\2140\252\313\262\252\252\352m3\035O\016\000\335U\233Y\301=l\204\3336\225\323\266K\274\241\310\213\025\222<\035K\2725\301W\207z\211\324\231\262\314\t\214\243*\211\373\372O.\322\247D\007\245(tB\221+h\305\336\311\364\241\264'r\351$\341\325R\322\203W\220j\257\252\302`nt\"C\000q\260=\307J\234u$""\307\237s\274\351\016\007\203\231\324C\010a\305U\335\033\215\217\247G\033\027;,\\\351S,\201\231s\2473S8B9zl\331\272!\234\234\347\234\r\313\001\262\370!\205\316&\300\302\206\302\206\257\300\352:\312\016\201\224\344\001a@v/W\t\231\271\262\230z\215\005Ec\306\363\322\002U\"\301s\373?\032H\0251*\203$3\200\250\003\025\nZB\327\023\225\025@\177\240vm\010\210\230\333\\\n\"+,\372\201m\251>\003S\347@\365\256\324zN`<0s\231\231\254g\214F'\271y\204\204\360J/x{\361\231\261\231\026\r\226\021vf=\321\340IO\021\242,\245\022M\234<\241\264\004\017\2511\033\327\027g\317\236\227\235\024]\"\272`\221\3220\351v\335\007\307q(t\030\004\366\216\254@x&`\210;\275\332QE\002\245\221*\340S\2359\313\021\002\353\262p\363_\215\005\307\206\004\203 HR$\030]\004D\000\023\"\251)#q\272K\034\231\210\000\222\302\233Re\031X\\\027\026\215\327\337~\262\016Q\014\304\022RfHf\r\217_kEm>7\274\0303\330\210q\233d\nq<\215\261\226\013\230@\210\370\233+r\024\251\304\340\333\000\353\265\205\203\014\262\325OQ\243JZ=\234\212\027\215\222j\261\274\214\337 H\204\343\201\002,1\021\250I\036\237\223\337\270\361\236\342M\260y\361\273vO\201A\000\205\303\256\361\261\360(\024\177Hz@\324\3247v\341!7\201\033\002\215\202\350\373\267\361qG\233\233\233'10\300\304\261\354\327\311t\222EDS@T*$TZe!\"\242B\250\303\221Q\rS;WGB\212\2418\272\304P\303\322C\304\317\2034\0004<8\032\026\034\306\3460\005\013\037F\035\343\320Qs\260,\330\326\306\207T\327)\254-6L\226\224\304\365\223I\304\263yzG\261\243\236\3215\036;\311\005\340(2AE\006H,\342\264\030b\316\2634$q\240\343r\207\200\347q\344\350\243\307\rGV3\231\2263f}\276\231t\2228\023\330b\005\372\370\373\200\331\350\037 \021\243\304F\216\003}\262\371\036f\333\276\320\364\311\221']\266\t\273.zk\235\004\330\231\271\n\305n-\304K^}\340G\000\220\301\300\234\356\013\032\272d\316\355\035\345\262o(\341S\323\207\351H\0379\314\224\010\006F\222w_8s\274\335\277\272\2720Q`\356\270\n\317\016=n\01787{\317\311\274\032>x\005\347\260\253\231eW\212\271\322\224\255\346R\226\352\264\205)k\007\317\027\336\316\224D\206\036n""\334o\010W+i\263\032\356\206\021l\235\273x\337\217\302\335\341\310rA\356\260\343\306\310\341@\005e+\277\337\346\237\224\266]\323\325_\330N\330\246\350\315\341\351\373\304/\233\367\270\351>hO\203*m\333\035\267\313M*9\241\333\331~y\311\316\350\332\377K^\025\363\375\317\255\365\276\246]\334s\347]\2353\177g\216\350G\214\365\234\\\310\366O\033@\016\344\026D\363\030\001\002\246|\276\226\006\224I$^\364\240fj\n*'\244\260\314cc\224\255\020F\005\033\024\343q\215\324\213041-\212\221PH\205U2\315\232\204\342o\032\303\241\321\211\310\372@\032\021\242bC\205\366\202\203\013M\234\003\312E\2209Z@v\376\362I0\036.\2774\256\350\331\256[,\354\34449\232GX\0029C\225%\312\027\004\tx\204\256\002\270\210/\223\377-\033\250\0364\320\026\301\014\035\001\242'\327\214\332\010\223\301MR\343\235Q\236x\203u2*\2063\201\303M\301f\274\216\243\242\351$\204$\356\027\241\221!8\320||\036\355\205\233\300\013\274\232w\215\345\336\355x\315:\305\032C\270\251\272\003\341\221\352\016\312:Q\316\367G\274\351w\262#\332\242r&\\@\256a\313\356\332I$\220\005\367\206~1\310\3221\335W7\363\302\246\370\017F\365\001\345\367\3121iiV\370\357\246\370;\356\372;\342\034+\302Y\275\344=&`\345|\220\357\"o\203\277\nK\276\020xM\275\310\275\344y\232\236\n\372\321\321\356\260Q\244\305m\263\034\0216\213\270\t\275\035\316\325[\246\345\3338ms\245\313\231]q\r\211C\2600\3303f#\230tKH\226\016\226\027]t\205BA\314\240\334Z\353\244*n\232\034\212\350t)\241\372\274z\374:\n*\275\341\312\t\234Mr!N\273\rs\026<\272\355;+\033I\260\007\331\202\225\000j\326\335\316\246q\316g\316!\310\036S]9w\266`d\326\243\2403\243\260!\027af\301\274\362g\234C\264\216\321\004\343\200\321\301\262k\352\211\253\223\352\201\342\362\321\254\001\225B.P9\275\310[\272'v\010\334\352\323y\016\001M`\340\310p'\003\300<\000ew\2703\370\273\334>\302\226Hp\020\327@\331\020\203\262\263Ftv\242\2513\231\363eS(n\216^\353\3379\314\206\360'\302\005\345\311E\360\325P\310\211\004\310$r;\336\360u\236\373\256\253\257\025\250\001G\000\242\271\307\275\256\032\341\270\271L\271\324:M\215\213\007\347""\033@\274\301i,\3731\316#\260\243\020\330Rl\031U\313\021u\262\003#z4\346\2535f\355\237\255b\311bj&\"\032\000\360\271\2253\251>\035\003\266A;g\316\365\325UUEG\332=\251p\252\270\345\214*\252\261UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUDUUU\350d\2161B\332\005\252\252\276\033|\276\347\305\316W;\230\302\322\337\225a\312\0377\312y?#\364q\264\017\202\362\347o2\325UU\\\347\252\364\320\275\270\201\262\253\025SkUUUU\025\\\255\252\252\252\250\250\253\331\267s\263\357\3766\215y\371c\033\2249\031\013\225\314\265r[\213US\373\363q\352\026\252\252\252\252+\337;\373\314\345{2\325\\\332\252\252\253\233%U\334\265pKUV\372_\177\306\264\202\212\252\252\252\252\355;]\376\317\3143\342\234\240/\271a\2723;\354\024\327\323\272\347K\341~\013\340\222\350\224\231\224X|1hA\230V\255\364\240Z\251}%\364\024\324\242\314\351H|\225|G\234I\363\322_S[\000\250s:5H\001\340Q\230\365 \323B\302\225\022\370\276\n\347\334\022\366>\356\372\013\357\313r\237\010,\243\203\322;\233\235\331\320\3106NY\n\324\340\rN\235\3473l\222\373\266\026 w\323\273\306\254\260\333\215\303\227\213F;k\212\036%y\355\332\247T\303\025Ex\226\224\255b\222S\010\014D\236\224\336\002\"\351\240\013\203\202s\232\3179\306\342i^a\034\035\301\360\017|\300\244\023\014\002W\022@\010_\311\352\217_\272\010\357\016\321\253N\221s\376\000\201\221\010\301`\003\221 aY\003\360\t\331\371\346(X\331F\354[\010\221\014\023\353\031\214\374^#\276U\323\023\277d\265\301T\006J\350D\2005\204\356&\251\003\356\320{pG\237L)\204\277\036A\326<\234^\0140\234\357a\217k\245\312\026<\261Qa\353\026\036X,O\226s\367n\027\020)f\0309Tj[\033\t\323\035!~\025E9B}\3006\206\316}\004\233'\013x\265\343\255\307\341\363\201\276D\266\306\241Z\211\004A\201\335\356\343\365\345\321a\004\"%\360\272\220\234\257\210.\021\010\201\227\250\177s\331\001D\007\236'\254\337v]?\301\3653\3176I\0054\361\236C!\267\233j{\241\234 F\014$]p\232N-/\247\010G\206R\210\231q\210s\266j\340'&@\001}\311)\214\263\320H#uNh;\223\351\232\001\273\000\014\263\223\314\212 \340\271\261\rk\000\237\001\004\211\327\r\205\321'\342\304\232""\335R\354\330\006\251\001\242\021\340y\323\235\217t\237r\202\252\321_y*}\320]\347Q\010@\375\262\265>C\177\263\234xb\006\364\310\222\323&8a\231\2070\362B#Q\031\026Ps\302\322\262!$\251\005\3175\212\265G\277\000K\2137\243n\330\226\220-f\213\333\343wa\346g\330\000\370\360\004\017\216\346J\242K\n\253=\233`\331\262l\243^\272\337\024<\014\364\250FY|\270\323\352I\211!\241%l\223\013\340\217\344\257H\033a\266\216\227\242\273~\003\301\300x\216\014\345UIH=\262\034\002\360\000@8\024\237c>\336\311\030\306@ x\375\220\300[h\301\006\342`\321~\232\356GiN\014e\260\222\211\006{\013\305b\241m0\324\264\275\nd\235\340\030\3429\357A\347\272\025\221\013\003\272\372{\264\342\260}Jq{q\230}\207\021Hfi \311\232X$\230\036\036s>M\3357h\321\241\303\212\276\321Y\274\241\230\33107\335k\356)\335\007\200X\234\003\016\003.\276|\364RZ\250\250\353\226c\020S2\341\206 \340\243\221\225\014{?\027\315n\373l~9\274=Y\341\332\001\366\004E\375\373\324Z\007\0135 \224m\t}\207\\\216\361\240hw7\013\252\036\341\035\311\201\336\313\3031*\340\026\241\271\223\250F\033\307L\241\224\341\300\234\316\033\273\027\001\264\312\336\244!\271D\007.\036\357\325vu\r\271j\334\331\214\3362#J=\371\241\226\311\231\276L\360\034\3511\272qr\024\200,\263\177\22571MN\354T\032\36526W\005B\331\206\306Ke\355\356\346\023\005<9\326\242\210{\350\000`\006\3177\265Q\236\375\362\007R\205\010\366\216\3226vsf\033\364~s\244\200r)\"7\306B\"\001\031\264[\200i\207o\022""\351RD>\373\306\005=s\215\205%F\255\316qQ\221UTAU\337\225\262C&f;X\230\210}D\014\237O\306\022\251\022\263e\3050{1\221\241\321\244H\276\213v\322-\333-\363\276\010\0274\253'L\313\301\314\266\340\037\361\024\3318f9\004\216Q!\203\225\r\312u%\340\306\301gdm\375uA\367\335-\231\234\005a\250Q\223I+D0oH\325f*\325r\223\000\007\020\006-bs\263\003\212\231\256/q\240\036F\007\334\322N\200\021\231\315t\216\242M\305\270$^\022)\212\361t\242^\244fT]\017@\236L>67R\021M!\223\220a\310o\240s\305\036\0346,@$\nM\2447w$\246\255A\246\313:\2750\244\007Mm(_P[\326\260\3368\361\346\251u\0343\023$$\311U!$\242\314\030J(:tht)\207o\335\336*\271\013\007E\2137](\272\033B\356+\007qa\270rm\020\362\302\034\366\thOa n\016\324\276(\002\320\266by\350]=k\273\327\353\331n\017\036\332\224k\2033\231\264\254\250\202 $\201\252\251Cix\216%\342\342\001\357\0353|\356$\345\305\324\254\254\364\353K\n\202&4\243\270\214\016\340\033\236\317geN\274p\373\274\252\321\236\031\254\036\221\335px\371\343\244E\t\223\257\217\316\303\005\0102\345]\324\t\316\303\256x\340H\234_\227\274\200\207\245\324\005\035\324\010\363;\346\375\263\351\305\330\2400\003\301o\235\252J\025\333\253\371\315\004f\023\307\206\223\034\374A1\030+R\256\363\235\020\347\273\316w\004\035\020\230\211\t\206\240\322\307\231e!4mx\266k\337\371)\352y\n\"\033\354P\364\223\014\014\014g\343r\313\216\343SOz\204\013\320\034\021FI\230\277\351^_5\267,d7\31579\030\200\313:p\010+\330#\317\315\332\025\322\302#\211\210\036Sfw\303\234\007\20350\237\034\316\204e5%\032,ss\ns\nr\007!\311\310\247#\272v\371\316\000\365zE\022hP)\313\\\261H\200\203\201\036Q`\345\010\345\334\r\376\356\312\235(\020\331\0056{\340<:H\326\rf5\271N\335u\321\212\373\025\324\232\021\350\000L\246\302q\307Z\253#\016#\217O\275Wg\000\357\030\314v1\221\304\341\244x\203aSh\337\023|w\316\250:D\352nF\332n\352%9\232\023)Q\273\022\362m\253\270\254\r\300\336y\010H\033\022\242H\021\204\017\037\204\016\233\335\364\311\266\017~\317'sJ0\3230\304\035\355\024\365o3\201}N\373\353c\021\254\267\216\216\010\355L\201\221q\217W=""\271\223&\345\373\246r$gT&Z\004\224i#\276\261ci\330\202o\307\203\213\226\273\013\002\347>}\206ia@\321\024\346\233\213e\252\204\255Q\313\000\326\270\003 \314v\250&\035\\U`9U\357\034bq\247>^.7r\351\256U/s\004\245\341\027B\2044\023\242\360\004u\212;\222\035\223E\334\354@ts\316~}(\270\241'\010\3634Z\206iQ\201dC0\212\016\016\001\230\0234A\025\016\253\250`\272\004{>]\000\225<\244; \327\036\253JJ4:a Z\034r_\202U\t\222\036\003m\002\333\257@(%BI;\025\335\331\357\216\334pf\023B0\320M\031\364\366\266I+\206\320\225\257\006\373\001-b\333wP\215\344--j[\341Q-\035\353\251\3036\203\177u\341\232\261\023\311cF\242\270\273'\304\300I*{\255\201\332\351e?\024\355^.@)\207\021]U\244Nfj\315\201A\010e\222 \306l\026C1.70\022\310\2700\021H\243\316\034\003\343\315\000\302\240u\326\216\260\315\373T\373\343\313\003\007\016LQ#$\005\226\035\201=\362n\366\310v\322\355\272:\342H#J@D\021#0\025\020s\365\331\317\261\271W_E\327\343\210\323>\271Pu\3248\312\225*\022\267\r=`G\000i3\310\244\"\230&\002\230\014SS\372\366\334i1OF\276\315TIk\254\033\272\335\354\007+\222\rQ\356M$\361\021L\241\360J@\327\361\244\344\276\023>x\313-\003\331{\301\251\230\260\271\342\n9\340\314%\220)\222$\232\277\035\332\303\002/\355\000\363X\035\021\321\000*\220\263r\224\321\331Q\210\276\230\310\234\226\017\273\275e-\353\320\343\257\243\021D\371z\362\233\355\266\302J\214;P\034\027\026\233\330s'\366\025\254\244\202W\235Z\273!\206\251\346\026\225\365/\t]r\027AqSD\213\007\215S\277\307\351\362q\357\312\220\226\2006\274.|sp\201XC\025\223V,\242\233jGGgN\351\276\356&\224PZ\321\325&\242\307#\260\247Y\207;\273m\324(\353\327x\330\305\275\274M\376\324\235r\373\274\276\357g.\216\252\006\343>\275\200l\330\016\334j\351Xv\006\364\245\242\354_\261\300\211\310`\270\317\2064\016\016@;\216ha'V\235\301\263*\361\220\305\213\026o\335\010&\2442\340,g\315\"\010\301\202\213\000Eb\202\204b\243\021]\334\241s""\206\032R\3416ql\216\260a\333.\253_%\033\242hR\032\010h0\035O_c\n\224\347\361p\360\3014\231@\205@h\2404_a|O\022.\205\024\\J\304\342\266f\032\341\003\360U\037tsI\022^@\224\327\363\030\034\3030Mj\332-\215\3254\020\311\204\242\010\020Q\220&/d\324\320`\204\2236\265\261\307k%r\013\372\372\256\341m\320j\226%\307\024^3\227n\244\374\255\267\360\001`=\234\004\313\202\035\3471fI\314\203=\375\204\361\216`i\307`6\347\333/V\232k6\273\243\2634\2050\220\330\344\266eH\347\032\315A\231\223!h\261r\212l\3459\340\035\003\026\210\016\263\006\235!#\306\014\244\001\312\255INo\033\240&\234\030Q\300\316L:)\017\2673q\215\235\177+\272\307\274~H\033\305\205\240p\367e\230{\374\335\257\017\256\327]\364Lo\247\360>w\013\331aW2\306\257\025s\245)[\350\322\226\375\273HR\226\260|\361}\354\351DHa\257\317\306\360\205r\266\232\343m\260\302-\223\266\332\003]`\214\237\035_\313\342l(\371]P5\377i\246\370\315\345\317\314C\007\347\r\216\216\214\244\374\347|0\230~\230\323YE\316\335\223\376\256Z\323\370\247\\\366\320\225%\374\351\257\301\235\024\250\241{|\243B\216\020\001\363osq\033\316w\021\300pA\034\211v^\000\312,F\023\004\214\300Fl\317'04\305s\232%\034\003'\343CD7:Ay\000!\310\330{>1\271\013""\325\274\\Cz\260\016 8t\005>\247\200\225E\0305 _\211\263\016\354Ua\3117\201\370\234ng\231\311\0347\246\360\rCV\250Q\205/\022(\244,\005-\241D\230-\311w\001,\002.$I\341Q\336?)\217\004\363\037Q\301\200\026\016vy\245\r\373\344g#w2\023\017\220x\313\034(\341\001b\024\200j\202\364K\030\224\300\014FR\271\234\326H<<\364\244\010\337\223A\243QQ\332\263\356D\201\331p4\032B<\337\007\217\2055\033@\232\025@\343\t\350\035QH\0217+d\244]\373\220\333Fu\331\337\220\215\241P;=\350{[\353\233\262`ky\343\002\0220\356%4\205\t\002xquD\351\251\330\316\272\231\344\350\334\262\251\233\244\254\230Mw\370\234\003\020\357\243\251\021tDA\234\317\251\263\232\366\372\366(\026`\001\276\016\371\343\007\356\017\215N\004|h\370\333Km\314\352f\336\037?\237\\<[C;q\3460\300\027\255Q,\256\332\210\026\370\223-\360\225\333\272\304c\311\263\000\033]\354PJ\213\305n\243(c\220\313@\262\307S\341u\236S\241\234n\224\236S\320\370\344`\"\304V\004U\002\021\325x\016\205r\031u\202J\323\245\322\327\245<\271[\232\276\030\342\306\032\333,\341\000\367\210 \341\035\004Q\251%\201\210H\232\204\013!\022$7\300^\005EL\340\004\216\017$A4\326\314\025@\363r\347\315\035\257\031\240\347\021>\344Z\033\252\034\313\003\23164\207z\242\375\210a\331\340\236\262L\236\320\265\203wK\223O\t\212\013\204\300K\211\216\033\240\033\235.\350;\246\350>1|m\372\211\262\361\235\337\0134\345\035\342\027z&\036\337\251;\212\233\253\001\2728\256\001\305\247N\337V\300$\233\2452\222NX%\230\356!\327\020\3467\200\027gx\327\330uSP\344\341\343\215\271\323z8\2676@6\206;A:\270\317'\2047\t,wB\254Ie\335(gN\004N4\204\025\005P\250\n\241\312\010\322\360\237\252\236mD\246q\357U\247\020c\002y\253hSq\010n3s\270jj\022\250\346<\205\326\361W\025\210o\225\356\372\247!\035W\"h\365*\275\334{?\222i\202I\261&\333R\245\333\251\363\\J\240 \241\274\201* \250\2524\004P\335Wf\006\235\023;SGy\215H\311\014\210\310\273x\253t\000\337F\006\372M\375\013\277\262\001\260\036\0037\224\023[\225\336\347l;\0356\267!k%\320\362\315U\014\2132w@88\0058\003\300k.\263\317\270\371\322Q\303\301\234\275\335""\341\265\207\014\335\337\310\211\225\010e&\376e\202\223X\356r\302\340\3363\356U\234\323\014\235?\267c\"&Q\206\341\224\035\314\333\216W\364<;\320\231u\233\214\307&\276\341Vo\275\0140\303\227\227Y\020\310\014\0352\016\201\252t\370Mo\25557\223rt\016\261\322\213\0351\\\007\362\376\217o\345\202\220K1\212O\226\225\230\360QJ\311P?g\027?\002\207\211\233*e\204\323+\005\254\210\202\273\320\306\327/\r\316\261MU6\325\302ck4\302\271\343T\301*M2\016i\013\275\222V\020\331\324\326N<\"\231\016\352\263\035\335\311\277\371\312D\020#\270=\210\200\";\221\020\"\007,U\"\244\004\202\203\001\"\250ApW9\020\372\002\004\")\002\004\")\010\261\020\037\224\213\372\010\204!U_,\250\207\275\331>\272,\t\250|\214K\020?\365\001\036)^10\301\210i\213$\0101\317{0\364\006\003=o\275pxT\212\"b\225S\014\302I$\250\343\321@\236\017n\375\326\037\325\217\313\000\206\010\001\224\t\227f\020\005\201\010\265\001\362\207\356\226\027zW\335\212\037\232\037\247\330\261l\"\243\313H\036\003\357O\223\025\1779\354\227\310\\\224[\234Z\303\331\020\320!Xe\310\214\375\013\266.S_\342\037c\331\262\374\037\270\036\340,\335\014\t\2663\227&q\200\303(\305kG\352\377\\\237\330 \277v\277P\242H\002\310*\037\361\002@=\231\371\224=\213Z\005\322\024`\357\301\\R\002>q\371 \021_\234\346\300\356\315\243N\360\202\367e\023\236\253,\025\033+\210\3752\2107@\014\300\211\362\207\257\372\202\310P`\250EG\262\255\355\317r\276\211^\342\"\266\002\021\274\022\177\214R\310f\"\273\312\026\324\177\251\353\372?\234R\243\352\250UH\010<\020P\024k\310\022xw\333\024/\017\270\373\310\034<~%\337;\003;\007\321\013\214?\030bX\204\213\213~\330\213\260\t\217~\202\230\212\216\"+\373*\023\t0\272\241 \275\245\3378\370|^;\177\347\311\037\234QZV\373\210y\022\202\327@\373\302\227T\250\365\030;\225\010\200\373\032\320\331\372\275\317#\354\365:\234\257\311\213p\004G\221HW\225C\312\340\000\213\252\322\024\233X\243\345\271I\005Z\324\200k\221Q\302\202\243\200\365Nd>w\376\235?\222""\313\202\253\357%\301\003\357Iq3\211>\216>\266\370\326\377\237\367\275\317{\346\310\217:({\360\212D[\346\373-\276~k\305.\376\212\213\276\000\177\232d\030\343\323\022\255\372\303\315\377\335}G\232\376\311#\177_\347\265\356.\316\332\325\033\314S\024;P\322\323\316 fs$0\037?\350\3753\351\375\330Bn\200\253\030\212\254\0260\237\204\250\022\260\230Ph\331!C\351\260O\246T\2322\245\227Q\202 Y\310\201\177_\375\371}^\267\257\003\266D\213\342]\240\"\005N0\006c}\230\327\350UT\303*\251&\002\237\n\325}\263\017\361{\374\347\340<\337G\341,\255\372\352\370~!HU/\264\247\305j\333_\302\237\307p\tLY\002`\004\251,\312\240*R\201\253C\336\353\355\240\2378\276dz\257\215\363\376\352\341Q\276\213\236\300\354\252\016\314E\203\022\322\025\366\376\277\237\314vX?*\222#\331W\371\362\330d\354a\202\233\007`7\251\244*?\332v_\361\376\327T\010u\2378\206\310\250\327ev\365\215\037F\247m\200\234\345\332[\002\340\013\205\351\017\225\003\262z\344z~d\201\366\305@\003\316\004\002o\316\025\326\363z\350\016\273\004y\266dc\003\"\006\355@D\277\037\377\003\352sz\253\315\036\330EB\343\266\311`\270\354'\253\r\212\270\013\360`\017K\2101\211a\363<\277O\374\245\372\272\312 v u\373\272\323\013$@\260.\010\363#@\010\013\030a\245\370\037\210S\253\336\003\321\027\320\252\222\036\203\323k\n@\371\245\304\364\237\202\276\033\037\025\276-\320\230LB]+\345\313\325\373\307\242%v\2247\201\347\301J[\317\330\017\252\036\233\001\205\306V\017R\343\363\365\277!\362\372?[FbC\267\362\342\253\360`0,OP\r\346:i*\372\243\345\006\276\252>`\353\370N\276\267\325^\213_\205p\203\020\251n\325>\033\260\020\330B\377\360\364\375\377\305T\035B\235\2054!\360\207\237\262z.*\364\275\010\340X_\200\274\355R\367\t\017\177\317\022\001\3265\350\n\352<\336\214\035v\302\341R? \t\210\030*\337\007\0040\t\3501\321\017K\203\n\036\361\361\220\373P;\022\037@uRS\006\310|\235b\236r\036\214I{\346>C\365u~*\016\302\023\361\366\374\330-ixv\244p)u\340\372K\375!\3520=\275\276\177O\351OH@\235\216\335\277\024\034A.\301\201\370\254z\227\031+\324\336\235]}^^\260\023\260;B\304\014""\036\253\026g\250K\322\3748DB\335\260\360\241\324\311:\302\217\265R\335\222\337%\025\016\321\014\001\202\237<\210a\0379\177\237\354\375\257\302Q\325G\222\017\264\205\370\030\364\020\000\362`\363\244F#\316|>\005\216\3666>\017\235\316{\310\373\376r\005\262\226Z\323\316)\347$\362t\317\320z)1\357{\377\247\340|\337\022\227\220X%/\224\265!\276\003\350\343\360c\3147\235\007\200\370\221\346I\274\245~\306]\203{\0222\232\353\2610\020\202\3551\027\270o\337oc\331Lq(\214b\2443\354\310\032:\177W\261\330\375\230\177\005\212\014\273y ~4B9\360 d2D\035\202ID\343\352\374\026\037\223\264oop>w#\271\202\037\340\341\377r\360\024\022\245'e\311\334\302?\363\273\221\346T\304B\273\222\037a\221\366`\373\314B\017\255\303\335\235\236\264\314w\t\017=\334\237b0xDxR?\246\016\314\251\356\324\216\321\361\035\211D\241\020E\335\351\311\224C\262\267jZ\347h\220\320\212\037bG\362\366\375yP\276S\262\317\220\027\201\340\221\343Q\021\010\375\337?\376\235\242\033\261\336\010<\017\004\274o\250\001?\211#\016\022\207k\370\322=}\307p.\322D#\010p\2128A\233\326\345\211v\231\020e!1\2448H\365\365\243\343w\346\261\243\362@\226T\2062\014\242!O$l^\013\337\313\013\370\203\032\372\303\030\304dhy,\035k\343\334\353\301\351\306\261\241\342\000\204NHd\327\261|\310]\177\315\374\024q\325\014D`(\024\200O9\200r:\214\035'\227\001}_\004_\3761$\347\222s\003D\337E\033\307\354\371\017\017\243\031\217\031\n\\\016a\305\323\013S\031\213\306\022\370\342\001_s\003\221@\276\307\313\352\277\375\330\207\030H\221\205\314\234\027OV\003\001|\367\001\200s8\370\233\370u\237\267\335L\372q\230\21016\013\327\313\343\223\310s_\031=\365_\351\364\365\237\236\000\023\360 \2765\361\236\030Q~\316\203\303R\370!\347\313\304\367Ov\210C\277\310\257\300\375\311\007\264\370TC\373\032\023\347_\251\210\004\350E\370\360\234.CS(\007\270_a\260 \335\237\271<\304-u\036\036\257\311\356\257\340K[\254\213a\230Z}\277\233\366W\270}r$>\200\344\317\322\307\320\370O\332\236\334\031\364LQ2\323\275\357~F$\374\300@\320\363IS1'\252z\361\376G\242\024\232O`\374\247\033\373\025(\t\037\r\222\353M4\371\276\247~\335 \2354%\241\nC\343\023\233\230\350\261\206\016(\227\007\311\314\354O\277\021\362\224*B\251j\301g\"p\350)D\221\257\301F\222\376H)\374Q\022\210\007\341@>(&\004C\377\005\177}\003\343\020\375B<\300\217pG\362 \377\242\017\343\020?\022\241\276\213\244@\322\243\264\256\300\001\256)\363\n{H\036\205#\356@/\200I[\001z\000?A\007\264\021\224AT\002\240\006\342?p\003|\034\336_<\223\343\211\363S\360I\277\025\225\375\352\245\005\261\005\370)YV\214\202\tjt\347WX\305\002L\245\030\361a\233\0107v\251\240j\254\244Uf0K\262f\325\267F\215TM\336U\312\030\326NM\333\025iZ\004L\335\340\245tF4Q\006g\r\233\"\233t\230\242C\214\221t\256\362\225\325\312\027LL1$\026\334\232\000\2023\005\213\240\203\010o\203\006\346\266]\031\364\267.\345*n\024d\201\240\310dd\201\220\3339\323\220 \311\003\216\357\241\354cd\266\334S\246\263\255U6\243r\2253fL3D#TR&\310\222\024\211\311H\022\033\354f\343%\267\014LR\240\301da\316gbs9\344\231\204\311\243\236\241\254\026T\211\231\003\026AH\201B\024 \205*2\201\013\t\251\003`z\0041\r\300\326\337&\354\2727\300J%N1$\023\200\032\243,8\224\232\010)\005\224\204\211\212P#.\341\335\314\215\n\212i\022\254\250I\213\2142C\226J\023\350\320\247\203\206\225W\214V\347l^6\360\347\221\2033bHL@\223\325{\033Nuk\021\262\304\010\210\330\330V\267,'\014I\002\010\024C0\342\210l\300o\031%\206\205a,\2332\303v\026m\252c\014\335\304\t2\3452\225\311\\&\355M\365\244)\271\223)L\314\"\302\242\21113(SN\225Ma\031\225\206\3571'\002\352\014\2132\215\006\315\366\271Q\021\315(\210\210\215\335\336\230\220\326t\230e\010\263\341\027\310(@\276\"F\307\361\356`X]\270\376&{7\036,{h\023\004\237k\343a\311\233\347\352&=\026\362\262Q\341\365\270\246W\315\353\347!\227\225)\353\275\034\271a\315\013\213kN\214\252\233\346""\342=\347\230\230\210\246\351u[E\016\343\350\246\006e+\343g\203\323\316\n\324US\305j\347\303\341\311\223\307j\212z_+\317\267\035\225\016\343\351\336a\237v\235\200\320^\300\342\325I\030gR\351\322\2244nj\347V&\215\241g2mU\207ya\006h\300\366\321S\032(\2462o+\006\204\001&\322\223H\334!nAB\000\260e\231Ut\263*M(9v\344\302\246\2630\2148\002\022A\225He58q\005j\261\031\222d\3106n\234\206\352\246\216eK\226f\353*~~\225\210\3018\0363+%\273vo\317j\242hm\224\247R\0241\350m*\345\014m\242H\204\354a\200\346X\252\3641\272\234\020\200l\242\345W]\356\346\001,\215\250\000\245)\241JB\211\025\222iD\002\2032\213 R\224A\240\320\221\031I%\026RdRBY\024\224\222D%\t)E(\245\nP\022\203FU%\t\224\031\002IE\221\226Pf\024\244\205\205\241\n\026\300(2A#\0102\226IIJ\020\262\226\022\311h\005\221\200$\266@\244,\244%\201l\220\240R\200R2D\004\001\003\333\260\224\014P\226\024\244\205\nRB\205\244,)I))BR0\211l%d\210$\211i\nZB\201$\201$\310\222I\202\321\002\205;AAJ=\240\225d\333V\204\247l\032Z\r\264\n\032\016\205))\305\320-\200\261nQ\013#`\267\"6\033r#@Qv\201,\2664+Cq\304#J\\X\314.\276I\264\333b\3337n\330.\227\221\"K\241F\254\366\337?\237\317\2173\347}\317\251~\223\016\372\036\202*\257c7\354>\363\375/\274\375\277\247\357\037?'\346\246\257\340\347\333\310\3207\310\335\277\244\177k\347\265\276\357<\017\023\363dN\352\363\320\362\3105\212u^\227/\331\367\275\351\3666\371\021&\343\320\222=\316\221\301\335\241\331'$\350\3626\324\307^\370~\027\275\r\350nI\261\331\333\265j*li\260\337\025)7)K\305\036F\303I\310\330`f\031\231\231\252;?\233\221\343\323\255\005|\020bm\376\227u\346X{kj\257_\\7P3\325\023\277\374]\311\024\341BCb\341\247d"; + PyObject *data = __Pyx_DecompressString(cstring, 14672, 2); if (unlikely(!data)) __PYX_ERR(0, 1, __pyx_L1_error) const char* const bytes = __Pyx_PyBytes_AsString(data); #if !CYTHON_ASSUME_SAFE_MACROS if (likely(bytes)); else { Py_DECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) } #endif - #elif (CYTHON_COMPRESS_STRINGS) != 0 /* compression: zlib (14139 bytes) */ -const char* const cstring = "x\332\335}\311[\023\311\373\370\220\304\031f\\F\024\227\031g\346\023f\\@\001\005\227QgmH\200HHB\0226\021cC\032\210\204\004\262\240\270\214s\344\230c\2169\346\230c\2169\346\330G\216\376\t\376\t\277\367\255z\273\273*\033Q\321\371>?\037LU\275\335]]\365\326[\357VoU\337w\336T\342\361\344\212\232\211%\023Nw*\225L9{\303JD\361z\375\243\021w0\3307\242F\235\376\345\247\332J\206]\030Q\\\021\377\310\003\367h\230]\t\250)uS\313h)\363b@\t*S}#\331x\374\372\210\246\246\340\216\014\\N8{\261\024K\257;\177w\336\350w\372\264l&\245\306\235\177`\001o\306+\177:o\364\271\324\364\272\026uzc\t\315\225\204'\215lv9\2569\335\317\267\222\t-\221\211\301\223S\311\235Xb\315\251\354h)uMk~e,\233Xa\235\363%3\316\261d6\021eM\035\233\361\215F|\376pd\314?\343s\365\231w\255\253i\247\232pf\023\351\214\212\257\334\322R\261dt<\225\314n\325\3240\036\364\317\004\204*<\211\255l\206\335\003\030uz\0221lL\354\205\306\357\366\370\0023av7\240\026J\236\260G\361z\036\272\371c\351\373\236\004b\tZo\215\201\307\027v\007}\212\027\207\301\037\204\033w\240\276\250sBMD\241a\374\216Y\250\304\025\231P|.\257\333\274\303\033Kg\234\341\335-\371&\257'\024\216\204\027\002\326}\326\340\231\335\027\037`#\311\020\025\366\370}\r\236\232H\306\243Z\252\3013\023~\257\313\035l\376D]\333\304\307\3446n\231\317B9\2539W\0019\223jvu\023\006I\211\252[\231\330\216V3\342\336\330rJM\355\262\241\250\035\006\257g\204\r\2020\000S\356\220\322\254*\037\020\025V\023\312nm%S\031\252\004+\010\315\004\002\376`\330\355\352\303\353Z\"\231][wn\245b+\232SM\255e7\201\026\323\367\235\332\363-\2308\360\030\334\24493\353j\3069\272\233Y\007D\307\322\316\250\026\217-\303k2Z|\327\231\316\300\263\330M\270)\341\014\270\003\003\267\356\336\002J\214:S\032N\276\2643\235]^\211\253\351\264\226v&W\235\313\331X<\023K83\200\312\364\240\323\263\352\334Mf\235\t\r\336\225I\002\326\322\322\003\231u-\341Lk\031\3148\257\250\211D2\303f|\004\036\207\356^qFc)x\t\"\000\236\036S\343im\320\237\315\014$W\007\202jb\rf\0364\304\223\210j\317\031\002\374@\312\376\261HP\361\215\273#n\237\013\320""\351r\317\367IO\2042j*\323\354\231PX\t\206\255\247ZM\034x\256\311\314\241\007W\000_\313\032t}M\305\016\310\320\255d:V\017}\241\245\222\004\201qP\021\014S*\235\211\255lX\340\344\016\022]2\016cI\300\364\212\n\023/\r\364\350\004.\021\303\211\313\257\244\357\233$\216Y\203\341%\223\361\276Pls+^KV\241LJK\254e\326-\346\27080|\343\306\340\340\300\320\215\033K\300\024\211W\366;\027\02128\310\200\343Z&\203\225\230\027o\000\220\030)\334\t\267\321\323\346\215\234\257\3025\270\200/`Us`\3377N\370\027^\207\2162\024l1\262\214\2558\237\245\324-`z@\305\214\323\205\001\327#W\340\216e\240P\025\204@\014\031\325\252\272\242\001\321!\236X=\010\204\221f\264\227\306\036\307Vw\235\33146\"\226\210\306vb\321,\2606V\227s\225xM\332\271\274\0133\006\020\023\305\373TVQ6\021[\215A=\346[\330\204O\363\016]_I&2\251$\264\237\325\213C\022U3j\277q\335\254\232Uer\2164M#\230a\032\033\205\224\226\316\30638k\314:\234Pu\032\330&\233[\252\363\311\223(\314\306'O\240\304\352z\362$\221\335\334\332\005\200\232J\251\273ig/\264\no\333\202\252\325\364\240\013\252\030\303\327\341#)\204'\343jJ\202\367\365;\201\231\260\332X\035\254c\232\272\262\216oLni\211~\347zl\r\006+\236|\326\357\\\211'\323\032k7\247\300A>TD\2778\223\237\3052\353\2546\234\322\000\2100\204Dx\373z\373\234\320\365\365dt\3209\267\036\203wlh\273\200Uv\2617\335\007\031\r\206\007!D\307i\3473`\021\254> r\206`\254\327@(\322\210\201|x\212\217,\336\300_\232\200\036\246q,\201p2\273\203\337X\264\305\030\220sM\313\340{\254\211\215\215\007\374\311\004\341L\260\231\005}Nna\031\332\261\013E\"0\253s\316$SG\030\375q\372\341\034\0160\n\252\3143l\0320\342M\024\001\026\255\001\266YE\006\251P\257\033S\306}\336\203\001\370'\276\371zX\0310j\034\260\004\023T9\220L\304\305\267\341\223\003\274\216\372\261\021\013}\302M\306\343pi-\335\273(\336\326\277\344\\d/d\327\"\320\352d*\262\361\014\013K}\274\261\256\344\n\223:\\\223C\342j\362\200ED \023\330\024\204\311F\343\311j2\225\201\030*A\t\230\203XY*\271\006\325mB\365+l`vb*Q\300j\262_\242\003xY\355\004$\322\210\201\250\262P;@\350""\036\200\001\310\246\022\342\004\2261\210\257IrFk\022\031\343S\310\2708\235\003\371\"\231k\211t\026*5\306\221\321\271\032\177\206D\303\324\t\2520\225M\310\370]\352s\376\302\010?]7\\\006\211@\013\361b|u\220\232Bu\031\330\362\020\262\336c\340\244wJ\243\337\372\245\341d\322\t\372\317n\013}#\234\212\201\024\316\002\023\252\021=pa\253\245&M7\214k\t(\362\331z\240\366=\223\330H$\237\221\375 \025\230\010\237\361M\372\374s>fN\314\242\026\207\003\264\005c\004\225\301\010\302\234\205Y\024\217m\3062\365WA\025g\342\210]\236\323\200Cb\367\344\327/9a\016\014\376\325\357t\366\366\365\"\202\026\377P\243\321\010(9Z/\242\tX4\016F\337\245\336h,\275\025Ww\031\241\366\001\027\277\324\273\206\232}\037\316\303^\023y\026GZUcq\203]i\254?+\311\250\346\354w\256%3$\20183G\263\341Y*\tm\212\306`,\322H\303\342\3658\223\367\234 \243\261\325U-\205\210\024n@=\016\271,4\332\031e\370\226\tT\"I\213\367l\306\322i\316\270\266\263\240\302E\2710\003n\217\002t\r\225\363\035\216R|1\352\022\2505@7 \327\307D\332`d%\231\322\0067a\272\304H.\361>\203$\007A\016J\257x[\026\346\377z\335\035\227\322\275\227@\250\300\277Ki\320\0224\240\366K0\031@\273\275\0361\364\206\301\255\3471\002\255$77\223\t\001\200\350\026\212\274\n\0230\270\202B\207\263\005\016\300F\360\034k\033\317&S`YhQ\224\333\034\300E3\345\2318\346\371\364.e2\353\360\036\324=\224\321\321\021\260\240B\312\250?\244\270\024\027\374\371C\243\212k\036\376\202\240t*\001\277\022\364\373}\354\007\256D\"J0\250,0C%\244\204<>%\254\300\377\2402;\356r\317\302o \350\031u\2032;\312\364\312\020\0279\351\021\366\222\021wX\031\361\007F\222\321]W\362i\014S/\320\r\246\241u@&ff\265\024\003\216\216zF]\336\341\321\240\177.\004\231\233#^et\322,y|!\217\313\2159\257\307\347\016\205\203\236IV\002\215\331\270\200z6\264/\004\240\t,\317Mx\302\356\020\230Y\036w\020\353P\260I~\237\3335\242\214,`\3315\253\370F\335#`\374OBq\304\355\r\243Q\206\331\240[\231T\346\024\274k\324\353\207J\307\247\224\340\314\210\377\341\014B\374\360\224\342\305ZBs\2001\006\232A\373U\t\207\025V\227K\tN\302\2033\256Q""\377\254;\210\000\377\003\017%\330L\314\006\225q\277o\314\273@\227\334\276\361\031\357\030\274\t\363\263n\037\344\204\273\tB\245q%\200\235\306\377\254\223\010\202\001\001\264`\367x}\023\312\324\024{5\330\313\343\254\003>V\000\333\323ce\202\376\020\242f\3023>1\007\025\260\354\344\2442)\344\246\374\210\222\t\377\024T\022\360\214\273\375X\017\274\331\027\366\214*\336\233\306\010y|>7\353;\230\271n\264\025\315\006LzF'y\277(7\262\200\275e\203\004\203\000V\360\210?\034\366Oa\321\357\033\367\272\307\307\335.\352\005\003\300\200CV\030\201)%<:\001\025y\375s\274D\3436\345\017\326\340\215 T\362\033m\014\000I\214\3626\001\365N\206&\2249\216\237\240'\344\036\2031\2759\345\206J]\330\261\220\033\r\366\260\2077\204A&\374\376\260U+\024\203ajd(\000x\200Ka\177\000K\240\363y\335\256\000\320\205;\350c\000|\033\220\341\234g\024\273\037V&g\202\036\226\t\315Lz`\\1?\021\234\t\205y\353\200\316\351-3>\317\364\214\373f\320\303\tj\206Q\000<`N\230y\002\230Mw{\274\243S\376Q\1770\350\006\002\r\301\337\2044G\3211\341rO).\317\254k\336T\336]\311\014\300\334\363\001\3676\2301c^\277?8\246\246\014\301o\244\203\221\010J\363H\244\026\260\332\340\306ume#\002j.\251\032\214I\013\327Aanq\0255i\3515\3746\246\rD\322\032(\263i\256\212\t\267\240\217/.\224Q\304Ju\000\327\225\312`\211\241\254\213X\300\232\356\210\360F\335\021\2567\350\216p\265Y\353\205[X\353k\313(\352\004\030>SS\204>\231=2\233\275\032W\327,\314\254\325\250{\r.\310\250D\270\245\331\232`T\203\315B<\231\334XVW6L\000\327\336j^M@\271z\322\363\3142\250\252f\276NM\224\2564\354E\272I/\322R/&\302\021\327h\300\035\364\370]<;\241\204\334\220\303\324\037\204\014\260{,\207\203n\037r33\017\214\320=\001:\2317\371l\002\254gf\"x\246<\021rw21\031\342r\322\2001\331\030\t\301\313\000\346\002\3162\343\r\207&\225)\005\353\205\007\334\343f&\242 \353\263\212\314!:\352\016\204-P\310\353\017\270\275>\257\177|\350\006:\212\247\240\242Q\027\376w\317\2071\031\363\314#lJ\231\rL)\220\235gN\247)%\202S\235\022>\341b\031m3\022\261@|\226M\001\257\302\026O\215A\277\\\001?\264\001S""\006\362\370\340\217\327\007Y\205~\r\300\014t\317C\351\324\224\177j\n:\212Z\202\017\004\222OSS\376\221Y?\327Y\\\240\263D\"\001\340\201\n\334\013\312\304\030\010\"\267\t\341\270\nxY\205<\231\202\213~/\310v\351v\016\241\333\003~\200\354>\207\377\254z\237\366<\023\324V\203~\340\215\243\001L\360?\250\201\240\0370\207\035\366:\250\251q\246\210@=J\0200\210\272\203\3077\021\232RB\323\301p(\014\222i\026$\352\350\004\373\031c\277PAhf$43\025bs7\264\256F\223\317P{\3419\246\324\360\254\241\326X%\341b:|\023\264(\370\233\300\345\007\322\310X\326\317\022\027\373\341\277\300\271Y:\317\177\203\230\004\374\370\213\032\232\221\322]\320\001LX\345\220\260\233\231\242\3063l(q\355\302x!*h\230\370\003\360\013\032\030\376\032J\030\317\013z\030\001\270*F\005K\033#\000)dT\022u2\002Ij\031\207I\232\031\201\004\345\214C\014\375\214J\206\212\306\2135Z\032\001k\0245\003*\350j\034$\253k\004\003%\302\3121\037./\211z\033\007\231\252\033\025e\355M\002Z\200Z\035\216\240\222\032\307a\\\2212\362\2062g\224Q\215\023\363L\245#\000iuF\211\251sR\001X\032\225\005\365\216Cj4<\0022\005\312\310\213z\036\207\221\202'\025\014m\217\003E\205\217 \222\316'\300\200\262xI\036UA\3713\001\026]\324\250\200\022\320\002\370\205~\030\272 /\t\352\240\001\2205B\016\255Q\n\t(\350\205&\204\253\206T\264\264C\002H\n\242\001\023tD\016\342j\242\221'M\221\212\206\262H\305\240\320mQe$\210\2545r`\255\342\210P\320\0351\231B>\3035H\226\t\361_l\026j\216\230x\220\2650\346\304\001\2409\342\212#\352\215\221\010\255=\342\222Z\304\007|;d\202\340\016\005\021\305\224\2300\256>\262\245Y\0210\226\3224\\z\3242\010\342+\201V\331\003:\010/1\307\266\271&a\301\275\244\230\360\222\177\253\351\215|]\243\356\002:K\244\226Y\020j\232\240J\230%\324&x\201+\024<\037\3424 \252\025B\0215\013\\ d3\231k\016\006z\254\025\"(\240\346\300\326\365H#\020\363\\\177\220 \246\n!A\231\026\201\020\2447\246K@\312\352E\025\202\022\020\207\224\003\235\202\345\350\216\331\000K8\214\213\177\314\222\342\200\3311\354\204\241>P\326\270\306\244\223\241G\360,\325ei\023\274\304\344\277""\225E^1\3058\006j\026\270,\311\205\033\350\025\326\262\231\2013\322\036\314\034>\026`\"\223\2151_\2275\006U\000\321\250\202\256\300\177\003<\tR\002\372\003\346BXq\020\324\355dJ\343\366\224K[U\263\361\214\341\372\200\313!6\005\271Z\201\031\326oT.0a\230D\025\003\023\246e\260\214\237\315v\256k\030\031\3762\3208\330/\366\003^\";Z\010\226\334\334R3\261\345X<\226\331\345 \211\340=\334C\326\340\n\252A\034{\254\326\262\2561\250\033z\005d\343Z0\313\230\233\236\375\244\327\265\370\026\256\224\342\1776d\353\214S\305b\210Q\356\220\2160_=\2205F\037`'\rkNl\217\325\026\241UM}\021M\275\024\344h\217\304\322\021\223\206!\317F\031\333\236\336\320v\341/\315\027}\370:\000wgp/F<\271f\270\013h\300\342\311g\360\307\272\306\226F\"@\022@\266H\030\353|\304a\342\301\0374\t(\000\272\234\335\204\204S\000\334\245\001\2752\312\217l\306\022\360\307n\203\326\263\353\264^@I\004\033\006\367%\243\3318zz\"\233\251d\004\350\224\365.\262\231^KpB6~\023\211\345\250\266\303~\242<\237\335J\300\023\317\301\366""\307\352D\364\002i\3632\313\231\343\314K\334\311\301\274\367\234\342\222\253\253i-\223L\244\264\035\030x\r\327\303\361?\213\212B\271\002y\206\220$\362i\263\262\032\352I[o\021V\003\340e\360\247\246\222\311\004rn#\237\335\202\034\3470\220YU7U\226\300\254\243t\203\215\345\326\272\n\315\301\034\033f+\307\233\223\315\30455\n\270\304{6\325\225(%\353\350\r\341\331tl-\001\003\211\005\366\016\030+\376\313\337\3143Fm0P\374\227.\262\214q1\261\014l\026\371\010\307\237\350T\022|I\242[\211\020MI\204\255\201Ba;\253F\201\355dSxsJc\255\303\204\221\3332.R\362\362f,\nbU\000\260\2658*S\247\323\360P\224\322\r\276\346\302f0_\365\304VX\023\232\345\3220\226Z\206K\013N\224\3747M\t\353-_\260\331JnE`\312a\rZ\204\317=\366s\203\375\016\211\223\261nb\022I0x\332X5\216D\320\203\313\3119\205^\017\234M\3301\374\177\203\375\260\327cn\210\375\230E\312\000{_\321\014\367)-3c\000\001\352\033Hr\231\010\n\207T6\221N\203X\332Tq\361\226\267\252\316{W\353\264K\3272H\004\360\266\312\356:(\031\214\227k<,\010\214\221\031\347\017\022\257\010.$\013,\273\221\004\270\377\201G.a\237\005\210\350R\262\300\246[I\000\311\256\245\272\0132\260\326\305$\\\221\334L\026\234\373r\304\262\341n\022a\350f\252-3\267\223\000$\327\223\010a\036\247:\000\330\276\002LpCY\320\032W\224p\201\271q\304\262\350\222\262\340\344\211\252\003\030\256)\353\202\350\236\022\240\222\213\252\006\016TnA\352\251HpWI@\231.k\334Vu\027d\240\277\246\337\206\013\313\202\010n,\021(\273\262\254+5\356,\341\202\340\322\222\240\334\255%\200,\327\226\000\224\334[\"\\pqY`\356\346\022\313\344\352\022@\206\273K\000\005kP&\272\275\004\250\354\372\262.\324""\272\277\214+n\2179\343\247\014~\314]af!d\345\214n\240[\314\310z\014\366k2y\353\242{\336\350\025s\225Q^p(I\020t*Y\000\356X\262\312!k$D\007S\r\010\235L\004\362\230\363\027=J\2245=D\265e\356Y\252\203\232\336\245\272+\314\303d@\215ag\236&\312\233\357D\007\223\220u\317\207\205\322\230g\336,\tO\314\006\314\254u\235\273\216\214\"y\243\214\342\230\321[\303+%\024\305\373L\201jx\250\254\242\360.\313SeA\230\277I.\032\354c\312d$\350\271\242\254\317\222\323\376\021\203J\310m%\225\214g\003\246J\020\364\217Z\271\200\225\r\n\331\241\033\006\246A\262R.dN\021\356\2262\nf\247\321=edMt\243\233\312\3102W\225Y\360\2333\227\273\254\304\202\360\326\231\0213g\364%|\323\310\230\314\t}JF\326\232#\334\023d\026<\302\005\2234\302!\343\315\206\227\210\212\334YD\205Y\263\363\206\353\310(\242\007\311\310C\375`!fT\362\261\244\263+\240M3\000s\027\3406\231H,\312\000k\226\023Z(2\3370\225-g1\001\352\275\317t\241\241g\332\270V\357\232\246+\030Yf\271\374\014\240\261\225\207\264Z\004[\241\310XJq\307e\204\357\0020|\032\021\322\255Y\337P\377\246\313u\340\332w\246\033\2773M\236\303\010\026\320\310e\256+v\027\017GC8\244\000\203\366\300\257\021\235\226\211mj\241\014\030T\230\341\365Y\271!+;leof\222\021\036\032\007:{\204\375X\361\034\331-\260d4\376\313<@\314\250c\252<\327\347\231a\304\255'j\347\016\367O\361Pt\376\313\314\241\177;\336\336\030zw\371\213#\307\366~\313\251\271\355}\307\311\334\327\371\356\374\364\276\343\370^8w6\267\235\357\330wt\345\272\360\347\207|0\277S\230/\006\213\231\322\235\362\371\312\251\312\255\312+=\364D\177\242\352\352\246\276\231\320\023\257\365\327\377\350\377\274\331w\234\311M\347\222\005\250\346\350\336P{/9\261\247\036\356K\204\272\217\357-\345{\362w\013\367\213\341R\027\026grW\362\247\362\277\026~.(\373\216o\367\236\3454\375\302\257\245T\031.\236\320O\374/\277]\350,b\307\365\256\213\205\221B\264\330W\372\255\034\255\\\256vT\277\323\203\021=\002\315\211\353qh\316\253w_|\361\272c\302\006\311\204\315\217\211\3376\203\311\214m\026\223Y\333\234\2155T?\333_T\314\226N\350\023\313\372\362+""\375\325\353w7\016\300\313\267{\333\364\323\n9I=\371\017\274\356M\207\017\337\3523\232\262\210\311\242\355\021&\217l\033\230l\330\342\230\304m\3170yf{\216\311s\333\256M\302'4\010\332y\375\306\273\301v\206\255;\007];\225\353\3016^\310\217\344W\013\023\305\221b\264t\271\334Y\261U.V\342z\020F\017z\014\243\207-\205\321\203\227\376m{\200\357~`\233\304d\262\246\261K\324\240D\201\241\355\276~\346Ra\232\267\251MRj\322\022i\370`\004\200\232\2447\341\000\r\r\267\373\222\037\363\313\205/\013\353\305\345\222\2434V\356\255\374\\qU\217\351\341\206\335U\014R\270\\P\21579\276\325\277\375\2450D\305w\307\2768rJ\357\272V\034\322\373\377,\253\372_\376jV\017\317\3503\263\364\344\315\322\320[\270\365^N\311\205\363]\370\324\255\275\355\234=7\224\233\310\217\025z\336:\276\372\367\331\336J\356L.\232\277\224\177^x^\334-w\354w~\273\227\201;F\261\341o\035G\366;O\346\000\210\010R\362\341\302\371b\027\264\343\227\337\312C\357z?x\372\344\377*\376\\\234\252\233?PC\n0\267P\330(u\227f\313CeOeI\017.\352\213\217\364G\353\372zL\217=\007\314\354v\270p\314]\006!Lc2m\013b\022\264\205\210\020b\371m\003i\237\263\261\320\322%}\tZ\372T\177\272\013\rz\321\341\306v\271m^L\274V+!\t\331\302\365\215u\234\322O\r\227zJC4\204\367\312]4\320\271\377\025:\364\036\030R\375\226\253\242T\246\351\206\336\2421J_\347\273\362\027\363*\216\325w\320\251[Pi\347\371\374\327\205\256\302E\240\240\316\357\363\327\n\323\300\235zK=\373\235gs+\306\335\337\347\177\311O\347\243\005\200\236\313\245\371\203\320\220\233\267\336]=\200\250\2210\370O\0274\316V\270\\\354,\331J\027K\253\345\211\312H%Z\355\327gW\364\225\250\036\335\322\267\266\241\303\251\016\005\373\255\330F0\031\261\311\334'`\263z\204\330\370=\207\315\270u\373\243\330\364o\345\341\362t\035\233\356-\332\212\027\213\261\322K\230\343\253U\245\272\320\254\2414j4\\\013\230,\330\036b\362\020\030\020\265\367F\251C\230\220\247\365S\277\024n\343\213\276\3727\263w\037Fw\023&, <\n\255\035BN\260\222\353\312]d\305\233y5\377Oq\272!\360\335\227_\034\351\3747\2737\262\267\0143\366v\336\006\227""\206a\000`zn\277\373\346\213#G\367\200\201v\356\035\331\233\205\311\352\311\317\025\024\340\305\235\320\014\366\204\r\330\3531\304\201\252\237\003|\026\273\200\206M~\365\353\3356\371\025\027h\253\305\211\322H)Z\276\\\351\254\332\252\027\253q\375\341\232\276\006\0232\243g\262\200\212\035\203\306\3070\031\263\215\327\3110\345\335\360\027_w\345\034\300\370\241\205\367\211{\036\273\000\3708v2\367U.\243_\270SR\367O\236\326O_.\254\001B\272\317\347\277)\364\024\376\204\201\355\376\th\363J\361\207\322\364[\312v\301\215\271\241\375ng\341\253\3026 \032\372\231\316\365\344\376,\234\206JO\236a\254\237\245\3108O\236\313m\277=y\026\247X\241c\377\372\235\322J\271\253<\010\375\350\331\277w\177\377\306\255\222\033\312=\014\253\200\231>EW\200\337d\365\354\216$j\337\227\354n\300<\030(\277\251&\365\245\307\373\310\264\235\205\016d\235r\236\213\350L\341^q\262\224)\337\251tU\372\252\177\350\363\200\334\035\024\266\035&>!\031\267x\006$a\333\n&+\266\004&\t\333\016&;\266W\230\274\262\275\306\344\265m\302\216z\206=\204I\310\276\210\311\242]\305D\265/c\262l_\261\327\311q\005Y\t\033)\0244\235\307\366| \033\266q\260n\027\216\025\225\342b\271\003x!\340\374\0050\220A@\377\311n\220&\312~w\177q\2744TR\336\236\354-~U\334.up\234*\357N\320\320\277\355\274\000\004\374\250x\246\270\001(\277V\231\256\250\373?8\013'\212\032\250KZe\010_8\\\010\025\217\024\037\301\365\237\313\nL\334\213\275P\234)\365\300d\370\372$\023K\nr\251m\274\367\226~e\244\322\203\004u\033\252w1\202\271\005\004\341\000\252\003\252\262\347~\315\367\025\206\220$N\347n\345^\000\033\274T\330\336\357>\363\366d\027\322\016\360R\340\255@\324\035\373\347\316\357w\177\257\177?^\331\336?\0174\t\2359\377C\336\r\017\364\000\234W\362\266\363\250~\364\247\374\032RVw\356\001L\321l\301\017L\372\330\225B\226\t\207\343\214\032\033^\374\256\322\363\026\262\231\342-@\313\021\240ch\362\315=u\357\237|\250`g-+r""\354>7\014\r\324u*\327\207\365\274\355<\246\037\373\t4\017d\177\230\377!\257 B\217\357yQ:\354\037\343\262}\021\330\304\205\022\340\027I\272G?\375\013b\263\346\276\037@Rl\024\273\364\253\330 (\237\201\351\361\017H\225\004\214;\327\033$\372\341C\304\007o\333x\365\376\2613\271\231\374\000M]\375\333\377\345\237\025\264\342\020Nt\025\224\020\300\341w\371\263\000\003>PT\367\273z\n\347\200\006\246k.\357\002\007\277R\352\002Q\306\030\010\316L \325\251\374\031\220h\307\272s.\375\374`Q-n\233W\261\r\247\201\301\306\3314%&\264\201\235:\r\274\265\263p\004\006\366\030v\340>\364p\025\211\346\\.\303\006\001zy\236\213JP\246\247\3372\312\272\017b_\205\261Ev\223\233\207'\236\032$\177\\?\016\355\024\250\036\337uk/\233\343\203\014d\267\337ybO\313\335\005\206\321\303\257\341\340\367\227\212\257\331\024\272\212\342\351\3520\210e\225\023)k\266Pm\223\332\206\352k\032\002M\0070p:w\023\332\271\003\324\333Q8SX)\236+u\374\013\303\177\322\352.\210\235\3343\034\t\206;Ht\030\306.\030\203\343\250\305\034\205\301\206+?\345_B\007\031\361M\302\260\342M?\027z\370M\347\363\377\003j\354fR\360xW\356Hn\026\306\302\ro\213b\313\366\261e\320-h\316B\031X\374\217\240\227\342\344a\023}[?\337[\264#=\235\317w\350\337]\323\257M\200!\326\205#\365\010\356\032\004lp\302E\301\010\274\242\371\033@\325*\271\312_\343\3142\337p&\267\010\275\376\t\361F\225\340\304\036\342\255f\345>6\211\200L\032U9\004${\261\024+\003\025\243,\353\001\016{\022gC\017(\231=\305\277\312\027\313*^\343D\225\004\2527\336\322\207\310 \216\212\224\256 \341\336\311w\325'\277\346{\204\344.\212\330Z\340\355<\014\330\273N\223B\261\255\330\255\013\300\336\231\016q'w\032\t\026\t\356\002\350\025\213\200\352.\203\235[\217\035\333\363\"\256\217\202qy\020s\020&\206\365\374\331\234\n\254io\034d9\233z7A\327\006|\234\007\026\247\302|\300\321\324\317]\347t\343S\335\347@\355?\305\2244\220\026\316\202\203\351] 6n\351\377\373\025\336p\254\242\354\377\320\303P\211\222\362\002\026\257\026{\33621e\347]\335\246\206\351\027\256\241L0H\037\220s\314\224\225\000\002\365\005i\013\021=\272\367:\357\001T\"\237\224\330\2331D\017\031\373\201\272wr\263\372\205\341\322/\200\243;H\2718\201{\2418\275\337u.\267\243\377\370k)\r2\357K\220\275'A=+\316\227B\210\224\323\310\356Q\022u\002\203\316O\327\217\265)\375\200\260\277\261x\007\322\322\361\302,0\013\312\002\317\222\236;\261\267\001H\263X3\324\233;\236\017\353=\210+SE\370\246\376~\322:\360\376\023y\255\360;\364\357(\033u\256\251\275sp3B\324c\217\032\231o\366\256\001w\007\005\366\330\336\244\250\264\335)\234e\334O\322\341\316\227\277\257\334\252<\257\276\320\027\300x\003\033\000\314\360\264\236\3164S\355\356\224\226\313\314\342\371I0(Ps\t\027\277+]+\207+g+\333\325\257\365i\250\354\211\376dU_\005u\016\314\212\227\372K\356r\221ue\262}\310\244\210`\022\261i\230h\266ULVmIL\222\206R\367\017&\377\330\036\240\376\366\300>\211\311\244\375!&\017\r\245.\216I\334\236\302$eOc\222\266g\354\244\224_+\222\373\200\004\365\004r_\230\304C%\205O\375s\372\371\333@.\307\320Ms\034x\206\376\375\255\022c\006\250\0041\271\271\006\024r\024\0358\307\211\2450Ec\237\353UG\200]\240f\002s\224\206\027'\371\003\260\202\356\024\211\022\320\330`0T\312a\002q%\303\237\277W\030+2m\341\270\250\257\300\005\326XP\025.1\003\3662\262#\"\001\313$k\350z2)\341\333\275]&\340,\222@#\031I\014\206y1\337\201\336\021\354\305\235B\227E-g\230-b\370n\276\313\377\234\037+\364\202!\345*}YZ//W\034\025\257\036\000s\001L!\256\260\223cB\366H<\306\344\2611\266\244\260\323\240n\221\003 \016\234\214\214\263\277\025\211\250\353H\270\253\236|oW;\232Q\353\265\342p\261\326\376\315\235\003c\362b>Vx\311lu\245\274P\331\320\247g\365Y\356\274\000\222E\372\207\366ek\354u""\352\027\271\334\310\002\211a\022\263=\305\344\251m\203:\364\264\320!tHt$\230C\322\242C7+j\263\016\r\024\203\300x\034\2479\347\236\307\316q\356Y\270\213\204\315\207\311U\370\032\244\260\253\374%\210\323\335\352Q=\364\336\235[\307d\275f\264^`\362\302\346\306\031\345\266\3731\361\333g0\231\261\317b2k\237\263K\003\372W\276\0070p\021\004\342G8\240\370(.\201\225z\3408n\352\241\017s\227\231\343\305\230\361\267{\321\\o\276\227\031LMtT\322D\254\204\353\331\274\220A\275#\257\360\312N\262\342m\320/\272d\000\350\334\265w\374\017e=\257\003Tf\220\354\035Fa\004}#\274\200\332e\006P\206\304\205\326\372\013\350\311\313\016\232_o0yc#V8\356@\323\331\261\216\311\272#\346xw\353\360(q\260\270\\:\256\377\341\327\375@T\334\327\027\300\227\007\014\3421\255\361\332q\373\036\354\340p\341;Pd\302LQ\371\272zA\017\317\351s@\237\217\365\307 /8}\222\335O\374c\033\223m\3338vl\334\036\301$b0\367\007\330\277\007\216IL&\035s\230\3149\3461\231w\254a\262\346Ha\222r\354b\262\353x\203\311\033\307\337G\320\323|D9\302\211`\323\364,\277\035\031E\202=n0\237\032.\204\266\213\200\252\231Ro\371j\305]mJ\277\375\305\0210\345j\260p\036n\273\005\206\334\321\322mk\242\316\353\363\200\202\210\036\001\002f^\030d\253\243\330\365Q\033\3211\371A\010-$+\345\305\212M\242j4\360\254\016]>\274\261\277^L\225\352\034\302\270\202\020-\364\025\177c\276\262\216\312w\325k\372\314\341vHXt\270\212\226uo{\313\016\350\252>\013\306s\n\254\210\331\322\335\3620\250)?T\227\364\207-\335\263\243\365\336\351Cy)\274Q\323\265m};\205\304\333a\276\215pR\367\322k\243\225\241v_\212,\3612\014\010\372wWK\023\345\221r\264\322_\335\324\027\333\352\251 \265\256\215\352\243\310J\017t\202\037\364b\030w\354\252\2362\027vL\1777c\026\323\365\357\036u\035&\255\242/\262Nt\324;\036\177\323g\027\364\005\276\334\005\242cG\337y\206K}\206\364 \265\225\274\217\304lIC5\211\024\222M\220\231uk\255\243\017\365\207l\274\373\205n1U?\337\323\262[\277V{Z\361\224x\271\277\322\202\257\334*\355\224\247\313\261\312K=(v\215\373\254i\350I*\222\243\177\036\223yC\253$>\236\306$mH""\377\277\221\345\376mW0Q\354#\366ZN\003j)\233\331\237\3372\271[\266\225{j-\223K\205 \030\221\367J\223\345L\345N\265\253\332\247\207\200\037-\353\313\\C\000\272|\215\006\2051!H\346\320\022\265\254\023\251\230\250\2665L\326\014\344\220X\"\261K\310\361b\342\265Oa2e\177\204\311#{\024\223\250=\201I\002\354\021H2\366,&Y\373\216a\235\014\024M\242\351w\351.T\332\336\r\277\357\2422R\300\235\302\371\342)\346\022\233/\007\241\357\277W_\353\217P%\322\237sY-;\327\315\345w\024\235FO\2271Y\266\2450I\031d\220\221e\213\271\322\354r\037\246\304D\345\242\243\271\3360c\t\030\230Z<\334\341\251\376\364\231\376\214\253|\262\221I!\006O0yb\214\2379[I\303\255U\001\200\216\331\254\357o\204\375\243\037hiI\264N\201\"?\345S\000y\016\022\025\327Q\357V\206+\341\352\017\372\014\364(\256\307\371X\0219z0\361\324DL\310\306\362\232\261\366t\245\260]\323\221\317?!\357\225O\225\207j'\344\345\302r\321Q\364\224\026\301|\034\253\366T\357\351a\340L \236\370\2421\324\307\375\004\304\237\344\256\223\326\276\204\311\222A\2374\023\311\020#j\225\331\024\315D\037&>\373\022&Kv\r\023\315\236\304$i\315D\344\216\366g\306\204\034,\232\301\007\375\356\312tcr\250\235\214$\023\033\317\303W\372b\313\345CS.\222\235\"O\267\3344\033Qv\367\347\037\321\373\270.U;\242W\230\212\263P\332\250tWf\253CU\217>\0033\022*\203\341\334\3207\240\233\\\356\223\206CCI\321,\262\362\327\320\246&\306cJ\034\244\013c(\311\010}\214\311c\373*&\253\366-L\266\254\241D\235\323\376\334\030\321\353ES\263r#\347h\254\341\324\317gAL\267\324y6\364\005\030\\\020,\200H#\222\205\311\226\306\003+\350=\203c\372\030\330@\214.n\035@g\270\010\3508o\3468s\234-\334\005K9\\:[z^N\301h<\322\247A\330\361\326\274\324_\362\360+\031\377\362\232\276\314\024\t\325\243\230\214\332]v\221E\352G\177\322\177\032.\365\260fW\324v\365\323\346\255\344\236B\3239!\253]cu\354\371\355\365q}\034x?\327\241i\352\020\207\007\361u\367\220\002\261\2005\231\\X\026\2252\337\225e\244\2148\231\371\020\251\222\001\373\304\3368nk|\2421F\233\013\225\256\266TqT\377\014+L\326\000&\352\351\021\032\321""\377\336s\003C\023\014\321\326\322e\330\274)\26222o\253w)\001\007d2\341S\013g\356\331\236-\336-\r3_\305\363J\252\332]}\244/\200\001\007\266\024W\035Iw\236\302d\252fB5\364\016\nN\350\216\267\023\313\310\362\014qG\3444\206\3241f\217a\022\263\373\320[\341s$1I:\266\034\357\356|(\307j2\375\0361\325\360%\272k:\210!SC\310\207\023\306\206\204\355\353\230\254\333\337`\362\306\3767\266\347o\207\027\023\257c\n\223)\307#L\0369\2260Yr_=U\275E\332\020\310'.*\333\017\310\335\264\325\233L\017@if\375n\270\030b\032\334\247s\367\362\343\205\206Xm\254\262\275\321\037\303\320\356\350;\222<\247\tOM&\235\324\\\355\250#\271I\357\207\023~\243y\273dH\247M}sW\337\345^`9F\330\333\310\252a\306\376\247\037l\324\363\277,\256\227\226\313\216\362X\245\267\372s\325\245\007\270g>\215\246\257aq\313\336 3\234\231!\263\241cE\324\311\017\323\344d<\271\331\002\303%\313\225\":\252\033h\361\324\021\022^\215\251\302\222\261\207\353eV\336\333\307\334@\010\223~J\256 y\365\356I\035Y\177\nf\376\230M7`c/\364\027\250\266\036\336;\033\251F\003\350\031\261\202\226a&\301[\353\306\311\301%\374\247\2377hM\235->/\245\312\335\345\331\312\335\352p5\254O\363\346q\315\2304\005\331\232\220\351\254\241oC\260||\271\036\014\320:\206\241 f\350\235\021\236FqlFt=\260W}\360\357J\207\256L\263ER \377y\252\357vi\272Ix\375\003\026C\346\340\021{\016\375\207A&*m\345+\300\267\246\255\240z!:\373\244\021\212cFqc\264I'`Ew\374\230\237\026B*0\004\311\216\241\231\247`\016 ?g14\367\362\017\n\253\030\371\310\242Z`.c4\246\021\257t\226\257\360\033Q8r\210\037\364\364\233/\216\234e\010\322\257\217Tz*C\025f&O[\361\305nl\313\211\2755\030\324\325\274\222\237\301(\334b\217\301\216\030~*]\362\256\204\253\305\036\375\332\037\345i\375O_U\323Ca=\013\303\316\035\264\007\207\217\220\342&{E(t\313\203\335\366\0301[O0yb\204\345S\350\026\271\354(z\201,K\262\202\375\216&n\250?\027\364\205\207\222=\365\221\013\2078)\"e\245\255\350!\230\201\017\365\207\213\372\"\260\017\300\220IE\362\362\032\3313DE$\245\315u\025\324\212m\331\372i\002\275j\270\034Z\347\340=SP\033up\275\372T\237_b;1\232\356\357R\016\336\335\265\250\007\200y#\222\331\2729\367\024\233\206G\373\241_\273\230\354\032\016z\362tPX\307\204\275n\365\373\341\342'\355\375\373\204\210\211\203\234\324\223 jPUd^\023R\376\345\355m2\003\224\203\250\310\233m\366\233mU\361\330\353\006\037dp?h,\206\315\016\220\366=\326\315uN\206\253\226q\n\213L\232\266\355\305\026\006\354\022\350\020\222\236\374!\034=^\033\355u\320\032\367+=\364~;\215i\215\2238\025MB\242M\032\243\227\r\326^\336\252\313\207\213\376\246\213\010\007\206\3525\013a\353\250\211\265\243\360\316\026L\360\316\007Z\305\302\3348\\\253\270I\320I""\263@\325\203|\337\211\203\r<\266\361\024#\316\267-\267R\r&\017\311=\007d\312=th\332\352\257^\327E\213\374\363\246]\267\373\207\007\363\266\242:\311\314\244E;\331Ks\220f\367\351\333\337\212i\275\327\254\261\030\327\341N\353\226\236\366\006\252\263\351+\256\363\330\035j\263\016\317k\334\3361\030\270\361\351T\341\016\350\225\247\030\253\236\257\004+\231\352\357\372\334\274>\317\343\340\220S\350\331\035\232u}\305\256\003x\200\374\002\266\204\327\364\\\201\031\026F\261\254/\363\0104I\216\215\324\034/\360G\276\003\3272\257\037\370^\346\030`?\255\2263\245Y\316\204Q\343\3456\032\350{9\205\277\375\362\307\256\2436f/\002=\265\273\365\371C\007\356m\377@\273\275h\032\250\324\230[\013\036\300\217z\3016sD\303;\270\256\220h\344_<\270\366\326\013\307!C\037\001E\021,K\311\223i\230\360,\226\243\315\2364YJ\235f\276A\030v~\330K\262n;\305\300\340G\276\241\251?Vx\311o\277\267MUx\364\300\345Rg\331V\276X^\255LTG\252Q=\330&\373\221\216\032h\263WM\316e\000u\205G\304\242\260`.#\361\350\205\367\250\277\261 Uq]\013h\214\367j\263>\272\266\377\343\352\337\02479\000\316`\226\324\311\340\313\037\023\246<\215\247\034\200\245\303\307=^'+\333\254\274Il\333\254>\013L\031\006\200\333\027\231\372\230\265\377za\277\245\375.\237\271#\256\346\177\206v7a\313\334\"o+\310\307<\270C\020\266\237\276\335MN\322\000}\023\335\255Fl\270\034K!\257\006>\256?\033\352\323Gg6a\357\300\261\016\014\0227\355\315\332u\377\317\200\355\237\301\210\033+\366\226~f\273\300\326+\313UG\325\313$7\310#v\222\026F\256\310\253\305&y\020\221\023\266\257\026{>_\273\333\010\021h\177\365]\214\r\370\204mo\255Z\203\026p`d\262|\370\231\250e\177\362V7\226/01\337\307\373s\220\345w\230\023\262\211\252\017\232\026\010\252\266\242\333\347\353\017\026\373?\024\017\321\360l\250\206\253\360R \304'\307{\023E\n\3448\250\236\246\037T\016y\222\267\223<\264\325kY\237\036\357\315\024N\230\224\334C%oF\223\t\334\n(\345\373!\352\325\320\377x{\200\341~\227\275\010&\241\023\372\377\013\375\252\3358\206\366\035Lb\350\366\341n\020\353x\357\355a\037\270\370)x\371""\"O\244(\265\303_\327\240}o\355-\370\035\330a0\222\200\330$Y@\332\203LlQL\242Ft4-j\321\356\250\206;\306\345\225?Z\017\037\305\265\276Q\207\013\023\227\303\217\211\337\361\020\223\207\216\247\230<\3050\330/\276\330rlc\262\355H9D\004\013\253\202\200\346\313\237\003\315\357I?\207\201NZ:\2237\233\371\354u\224\3668\362\211Q\360a\273\201A\265\000qmj\376$2dQM\373A\010\013\362:2\205\\\320\021 &\026\352\202l\027\037}\342\356\037\260\273[\330\2059\243\317\360\343\t\270\225\231\325\263\265\336A\371\220;Y\374la\262e{\211\311Kc\217\201\271r\310\026\325\037\330[z\312\016\277\357\203\365=?pw?\250\225\240\016\233&v\033\233\333\250\347t\006\257|\022\314\033[K\017\347\247\230\360\035\2078\335\311\366\222g\275\034_B\213\222\362\026S\245~\236?Z\372\304=\247\263G\344\276\037x\336\010\230\367 *M\233\223\244\245l#\313\033NiO-\355=\240]4&\205\323\301?\265N\310\003\373^\263\014J\353I\315\321\000s\024le\356\342n\0227\321sHQ\023\362\002\265\354ejc\237\021\261~\332\244A\2015t\336\345\243\372\210\212\276\253\037u\244,\t3\023h\332\036\334\005:)\342\332G5s\250t\252T\267\360\216\246\257\243\340).2\023\262\247r\257:\305\350\212o\235\343A\334\244U\0237mx\324\202d\370^\375\250Fv\311\247\017\211Aw\215\232\253\240\207\025\032\3149b\243\363\300\34402\332=e\036\026\305\244\300v\243\205\273\217Bv[1\016*:s\302z\230Ob\022\335\346\372\232\340\333\277x\351#\033\323V8\322&k\014\337\371\216\307\2531\353\273\341\016\333I[\313\245\201\367m\337p\375\364A\023\265\273\260P\334`\246\336P\305#.\037\000\246\270\206#\333\331\356\006F\351\3074\353f\375tA\217\305\305B\254\370\222Y\376JeA\\\226\001\221\304yR\303\215\246\242\217\002\3273\257~T\313\206K\323hS\237\240\003\\\305l\243Vn\326\235`%\253\014\262\213\202\246\n\251\310\255b\n\251Sgr\263\371{\330>\213\305\236e\347\231N\267\276F'\222\177\324(\341Iz\265\207\221\343\202\306\255\302n\351h\371Vy\2472]\211I\353\263\240)6\342\023\343\r\3260>\272a\362""\266\366\326\355j\302\277\016\273]-\367\364\030\226\3056\305:p\357>)[\346\207\032\204-h\227.\177dc\3322t^\313\201\027|\366\3234k\274?\255\211\271\362\276\355\033\250g\234\365\332i\007-@r\023\214\014\021\363\003)\302\242\366\345+\037\331\230\266\224\345\343\362j(\347IDS\362\342\343T\375Y\211Wz?\2123\321!+|S\014\347Gb\276I\030\270\270t.M\001\271\271d\321\310gt4>\375Q\212\201\201>]\376\370>\035d\2226\354\007\315ay\r\322\327:\"\353\375w\253\324\020\305A[Rz(\350\206\033\316\265Vd+d\233{\317\017\210:y\357\317\201\264a\366LS\014\014_\036\240Hi3tD0Fz\373>j\270\333t=\r\310qK\034\205d\211\312\013\211\376\372]\332\320\304\301\303m\342\373lI\272\376^*\276\274\303\240aT3\371\315h\237J\313\317\"\324\3545\372\017\016\234i\327\331\"\236\002\005\032g\003\307\"9\034\032\272\347\345S\032\350c\022\344m\"/+\355\347\231\307d\276\311!\036M\242#?\017\246\332\322`^\352\017\037\353\217\371<\200\372\200\2334\322\315iF\2203\212\226\326eW\254\274\303\324\214\227g\236Ir\321\320&8\332\001eR\026\326b\217\332[\253I\237\3534\243\236\377\350,#R\314\345C\252hF\022\211\021\302\350\310\r\332<\370\324\336z%\354\363\340\355\267\372S\275\032|Q\010&#P\031\217\200\223\\(\rUA\371`E\2422y\253\245i\315\340\362a\315qP4=\0270Y0\250\314D\032\326b\337\260\267\016\"\374<\270c\003'\371\316\032.\224\3248\217\033\370\313\211\330\032n\323\227\025\000B\030\2615b\377\3443\234\303d\3168\021\315dku\021K\237\037Qx\006{\r\221aP\223\253\370u\351B\331\205'\370Wv\331QB\200'\356\247\003\333\007\264\214FV\275\274\227\223p%/\255\311\232)q2\362@\323\022\023m\347%\\\231\234\214\235\352\250\331\353\242\245\336\276z\375\037\240m\270\364s\255 h\340\237Y\324\347\2416nup#\233\373\243\345\030\024\232\232\264\026C\252\205\354\252\247\251)k\030\362\236>Z\347%\332\"~F\247`\322\331{[\366\326\316\240\317\203\272v\267:\325\254\3425\367\347\023O\223\343\352d\262\243\245\016r\353\023O\243\265L\2427\342i\246[\277\2457\357\363`\212;~E\022\253\367\365N\352s\200%\356\005\340\376\266&+`\264\352AX\222\227\235\017I\342\222H\214N4\245\363#\326\353\217\211\376O\216\365\355\372\217\016\365%\353I\216\204 \001@\232,\021\232\2110\262\236\352\003f\077\077\336~-m\327\342\255\301\367\262a\202\202\320\344\273\250\321{\256\277\342BS\216h\226\335=\rO'1\227K\031\311\311A3\244\375S$\036\tMS\000\020\311\325\177\211{y\345pw\2436\336\236\367\222}_\325\334A.3\247\306\037\020\026\3268V\370\014%\273\2108\224u\314\302\235Ci\277\370\231\361\226\207\234J\021\242rPS\033\346,\271P\032[g\264\016\300\277=\276\022=\334\221i\331\251\326\337\3610#{\352\226+\242|h\254X\247\301\317\266\343\232\217\003\315\2416b\217L\206Sw~i\264\366\354\252\341C\247\250\226=\221\216\026m#X\224\350\253\361g\033\250_\234\206\264\325\303\245\241\226\347\244\276\327\206\030\301\031\277\272vH\010\257;@\273\345\326\370\2666\226\310\326J\253x=!@\031:\364\371v\370\277\317\376\0301\232\3118\321\3558H\370\243\325!\361T7<\356\016\277n\213\347\314\261\357\256\263\370\001,p\226\314b\t\366\266\365\223,\244\351\255\203>\312K`~6\335\211\034;\001\360(\273`~p\353\n~\236\266\233\177is<7\244w_,xK\320\226\343{\013\034W_\375\273M\327r\254\276\257s]\302\275\343\305;\354\003\271t\334\335\217\205\265\342,\377\312\037o\351e\374\"\227\360\265\317\2239[\356R.\215\230\205+\335L\023\374\265\364si\274<\304LZh\373\211\275\030\037\001\241\355\337\344\330wl\177\315\375\222\233\306O\373N\033M\362\300@lck\347\330A\177g\330\0273\2518mTa\317\r\263Otb\360T\316\205\037\362\344\221n\374\254\231+\177\225\267?\352\303i\374\354\257\351\266\326C\245\263\003\230Y@\324A\336\263\306\273\032\005\316\270\304\205\202\025\236r\365\023\207\036/\227N\224\023U\345\220\002\220i\022\020\023mC\343$c""\260\225\306)\242\347\021G\017Y\t\244\253Yly\370\223\207\356\276)'\253\021\276'\275\3257\331?0\240\267\241rC\261\273\362y\210\262\217\206\\\200/0ya\037\301\355\034#\016:\017\321\203\211\307\021\306$\354\210`\0221>\350\266\211\311\246#\201I\302\221t4P\212\226\270\324\267T\306\301ON\220\337\226\337T\325V\330\375@\342$\326LT#{\364\345\257\r\310:#\351\364\033\230l\324\034\257G\270\246\217\347\0050\t8\2461\231v\004\035\r\024\004\220\330\237;\310\372p\217g#\326D\244*\357.\227\227\314[-\320\221K\243\325\002\235\340\236E1\265\313\276|\214G\267\356\177}\212\t\n\014\253\373\377)\377\226\001\200$\372\2300\356<\227{Q\340\337\250}!\314\277\336\317N=\310\367^\327\237\341\370\201<\216z\322j\315\215\246\246<'I`\020\375\020\377\243e\311mL\266\255\257\324\320\321\240\262\361\364\377\000\254C4\335"; - PyObject *data = __Pyx_DecompressString(cstring, 14139, 1); + #elif (CYTHON_COMPRESS_STRINGS) != 0 /* compression: zlib (16678 bytes) */ +const char* const cstring = "x\332\335}\311{\032G\363\177\0048\257\035\313\211\345x\313\366\006%^$/\212e;\316\276\214\000IX\010$@\2337<\202\221\204\205@b\221-/\361{\324\221#G\216\0349r\344\310q\216:\372O\360\237\360\253\352\256\231\351\206\001\241\315\371>\077\077\026\275\314L/\325\325\325\237\256\256\356\376\325}G\361\316\207\335+j\316\235\316\270\013\351\\^]Li\356u-\233\314$\334\231%w2\237sg\236\247\177\003\217{)\223Je\236\347\334\371\025\315\235L\247\265\254\033>\036rG\264\274\373*\370\256Bd.\257\251\211!EH`\030\375K\231\354\032\313!\267\226\311\344W\222\351e\005\222\212\253\371d&\355\366e\263\231\254{ \252\304\224@ \344\211\371\302\341\301\0215\341\016->\323\342y\366`D\361\306B#\367}\236({2\245f\3255-\257e\315\207SJX\231\034\034)\244R?\214hj\026\336\310\303\343\264{\000C\311\334\212\373w\367\255\033\356\240V\310g\325\224\373\017\014\340\313\370\344O\367\255A\257\232[\321\022\356@2\255y3\360\245\341- 1|/\3263i-\235O\302\227\223\231M(\274[\331\324\262\352\262\326\376\311h!\035g\225\013f\362\356\321L!\235`E\035\235\tzb\301P46\032\232\tz\007\315\267\220\376\252;\227\317j\352\032Ke\312/?K7\267\315X6SXoJ},\034\232\231\022\222\037\207\0326\225\313\237^/\344\331g\320\000n\177:\211eO\276\324x\002\376\340\324L\224%\000-\001!\177\324\257\004\374\017|\203\354\263\334\257\376t\256\260\264\224\214'\241\316\356\361d.\237\311n\321\207\221\231\321Q\277\307\357\013Fc\343\376H4\024^\200\217\260\t\2004V\003\373\203Q_8\250\004\260\215Caxc\023rO\270\307\325t\002j\306\337\230\205,\275\261q%\350\r\370\3147\002\220\231;\272\265.\277\024\200\234b\321\205)\353=\2133L\372\211\03706a\255\020\365\207\2026_\215gR\t-k\363\315x(\340\365\205\333\177\321R6\3613\271\214\353\346\267\020.h\320\255\262\356\t\265\260\264\006\255\254$\324\365|rSkj\266@r1\253\002\255\261\341\232\033-\340\037aM&4\327\244/\242\264Kjr\324\1775\327\322\323\237\003\223e\265|2\013\211&\323\356\250r\023\262t{\206\202\231\246\317\335\003\311\004r|~k0\010\274\217\005\212\024\326\3273\331<\025\007\213\022\231\231\232\n\205\243>\357 >\327\322\231\302\362\212{""=\233\214kn5\273\\X\203\004r\277\272\265\027\353\320\277\3413xI\003\241\242\346\335\236\255\374\n4Y2\347Nh\251\344\"\344\230\327R[\3301\222q$\030\274\224vO\371\246n\336\375\371.t\212\004\224\031eD\316\235+,\306Sj.\247\345P\346,\026\222\251/\325\202E@\203\203Wh\201I%\352\031\207\204\002\2419\036\242v\233\014\205\233\350F1\024\n\031e\234\002\226\360\3602\001\367ND\306\2259N\237\260?\342\033\2056\2753\351\203D\275X\261\210\017\365)Q?/\010\213\031\017\205\242V\252\020\014G\251\220\221)\240\003<\212\206\2460\004\2503\340\363N\001_\370\302A\026\201\271\001\033\316\371=X\375\25021\023\3663Odf\302\017\355\212\376\361\360L$\312K\007|N\271\314\004\375\3233\276;a?g\250\031\306\001\360\201\331a\346)\302,\272\317\037\360L\216z&C\360\177\306\023\232\232B>\017\205\303>`\327\010\374\037\367\314LFf&=\263~\251\353\242:\311\013D""\230\tD\275\276I\305\353\217(#P\t\257\177\026:\017\220\035J?\025\362\316\233\363\ro&\357\033\365\303\233\276\260/\354\367\315O\3716`\0066\032\010\205\302\243\220\317hX\361\000\031F\325\254\001_\014w(\026CL\022\2135G,\331\274\270\242\305Wc\000\326\t0\261qBx\016\260\277\303S\234\017H\331\360\327\030\246\211\345@>j9\016(\205WPG\234\022\302\010\024\2444@\252Ka\230O\342p\033\263\"\233\252#\306\333UGxnS\035\341i\273\322\013\257\260\3227\207q\264\025\342\360\233\246 \324\311\254\221Y\354\245\224\272lQf\271\t\264\332<\220I\211\361\026>7\243\021\314\233\201T&\263\272\250\306W\315\010\216A\233\262\246H9yB\253f\030\000\267\351o\001\273\322\023\333Z\344\332\324\"'\325b\\\031\237T\306\2431\257g\nx>\344\345\336q%\342\003\037\272\2410x`\334\300p4\354\013\242X4\375 Q}\343\000/\003\231\347L\223\215\263\035\377\244?FJp6\336F\370\200k\304\261A6\026\301\016\026\211Q\357\214L(\223\312\204g\302{\037\023\207\257|c\246'\246\240 \265\202L\373\355\361ME\255\250H 4\345\013\004\003\241\261\341[\270\3440\t\251y\274\370\347\233\217\2423\352\237\3078\220\273\023\276\350\250\177R\211D\340gvjR\201\370y\246$\234Tb(.\310\341\3750\231\327\326b1+\212w\276I\020\203X\207IH\310\017\002\004\n\204.\213\362\007\341?O\017\274\n\375\032\0213Pa?\271\223\223\241\311I\250:\002\220 \214u\301Y\177PS\263\241\221\331\020\307M^\300M\261\330\024\310(\005^\007\250\002\342g\322g\306p\002N!)`\370\n\370\310\027V\202\023S\001\226\021w&\341\213P\000\340\204\224\006\217\2414\246BS\263\376\251Y\370\215\302\243\255\027\360\3072\017j/\362ami\232\211\3720\020/\004\002\3323\205\016\376\001\224\005\220\022\236\205\377\241\000\323\310\"\231\302\232\232b\240\0102P\302@\177\3041\376\340x\004\210>\351\217L\207\243\221(\014\224\263L\307\310~F\rucdf$\202r\034\252\302\230+\302\004BdEMd\236#\254\342>\206\266\270\327\300[VHx\230\213\336\001x\007\377\307qM\314\303~8hd\336\020s\274\354\207\377\202\204gn\230\375\316\363_\026\010\341\317\024\373E(i\270\364\001\324\016\035\226\0318\354\013\206(\271\2071\006.\260\031y#\222D'4\005\277\000\025\361""\327@\213\334/\000F\212\340\230\221\002\026l\244\010B\216\024\022\301#EI\370\221\307I\020\222\242\004\024\311c\014 I!\003K\362`\023\234\244\310&Di\304\n\240\222G\311\270\222\342\000\355X>\246\301\347!\021`\362(\023cRP\206\231R\244\025\321\0146)V\302\233<\216#>\303o\240N#\214xS\3643\354I\021\004?\215\020\303\235R\000D&\205\005\034\312c\232\240(E2\244g\370E@\312\343\010\211J\001\003\226\362H\021\231R\214\004N\2058\340,\036\222[U@\251f\204\305\027MXU\212\264\"BB=\014\320\312C\002n5\"d\350\312c\233\320+E\n\000\326\214\341\030\226\202\026\214\245\010\t\311\032q\002\230\345Q\034\317\032~\202\264\0244P-\005\303B\265ElK12\274\345\221\315\010\027c\001\344\24239\312~C\374\2275\000\007\274\314\207\230\227y\"\374\227\225\226\201_\364\314b\201\021\352\242\343G\001d\000]\3642\t\306\004\033\240\\\374e\357\261r\372XU\001\361\342\362:\342]t\271|#\324\033\213\321\312;\256\371\306\2020\214D\314(\370D\301\026`\020,\212Suf\230 F\214f5\r\027\327\265\263\246L\343j\004f\215\n\243\346\325\360\372\r\301mh`\215\24092\230\003\210o\324H\300\372\336\254\267\317$\247o\336\240\"\323\320\032~k\371L\205es\230+:[bMeg\313\023\246\3604b\rJ3\305'\371\315b\240\276S\360\372\346\243Bh\324?o\206\204/\270B\324\014F\"\226\177v\312\364Z\237r\215\246\021$%\251\021\264\022\"e\251\020\024\3373\241\201\2418\265\202B^\226\002\325\212aZN9h\260\352\244)\022Q\241J\336\240\2058\202&+\207F\014\376\2654\252r\004jU\215\230\200\230'iW\215\220\311\357Sf\342S\263V\234Q\n\256L\245@\330\244~8\344\261|S\2267,x\207o\031\315\0346\233&C\013K\021\321;\206\307\224\031\250\0325\274\226\210\340\372I3\340\027\036\230|\034\215\214\232>\243\024\206\n\223\202\\\223I\201Y\223B\263f%\270z\323\010\314\231\262\034\225\235\344\2353a\263\241\3724\202\250\0015\374\346\353L\037\232\333\312\305\362*\351\004s\2058L\255X\004S`\241\311g,\231h\0167\275@{\3550r\331ZH\022\202l}\207\302\326\202\017E\264\256 \321\003\333\325%\343Y\353\362\022=A\333YKWnD\032\266\2534\253\301hkK\007\206\262|\021 \306\025\245\206*.Fs+Va\234\177\321\343\226\350\346\023\343f\3000g\213\261\037\313\242\214\032\262\260\016S`\215\3772\375%S \260y\034\237\314Q\0317\271v\225o\347\341\277l\362\214\246\301\206y0\314\016y\306\377\353ywk\370\375\225\217\216\365n\377VT\213\033;\256\323\305\023\245\263\245\351\035\327\251\355h\361|q\243\324\263\343\352+\366\341\317\327\245pi\263<_\tW\362\325{\265\213\3653\365\273\365\327z\344\251\376T\325\3255}-\255\247\337\350o\376\321\377y\273\343:W\234.f\312\220\314\311\355\341\3562\371t[=\334L\204\264Om?.\365\227~.\377Z""\211V\37308S\274Z:S\372\251\374]Y\331q}\266\375\274\250\351_\375T\315\326\340\341\247\372\247\337\2266\312\307+Xq\275\357Ry\244\234\250\014V\177\253%\352W\032=\215/\364pL\217AqRz\n\212\363\372\375G\037\275\351\031w\2003\356\010\241\023r\314\2403\343\230Eg\3261\347`\005\325\317\337\250(fI\307\365\361E}\361\265\376\372\315\373[\273\320\345\263\355\r\372\351D\234\214\236\371\007\262{\333\023\304\\\203FQ\036\242\363\320\361\010\235G\216UtV\035)tR\216\347\350\346}\3371\201\316DSa\037S\201\322eF\266_\365s\227\313\323\274L]\262R\233\222H\315\007-\000\334$\345\204\r4|\273\333L\276)-\226?.\257T\026\253\256\352hm\240\376]\335\333\350\325\243\266\325U\014V\270RV\215\234\\\237\351\237}_\036\246\340\373\336\217\216\235\321\373\256W\206\365\033\177\326T\375\257P\243\240Gg\364\231Y\372\362Nu\370\035\274\372KQ)FK}\370\325\335\355\215\242\2638\\\034/\215\226\373\337\271\376\363\277\347\333\361\342\271b\242t\271\364\242\374\242\262U\353\3319\376\331v\036\336\360`\301\337\271\216\355\034?]\204H$\220R\212\226/V\372\240\034\337\377V\033~?\260\357\356S\372\253\362]e\262\245\377@\nY\240\334By\265z\266:[\033\256\371\353\217\365\360C\375\341#\375\321\212\276\222\324\223/\2002[=^ls\257\301\010\323\350L;\302\350\204\035\021b\204di\303 \332\207,,\224\364\261\376\030J\372L\177\266\005\005z\331\343\303r\371\034\001t\002V)\301\2118\242\255\205\275}\277\321/\025\266\0037\375\267\224-\237\207V\313\262\022\374\\\277]\2176\276\326g\200\225\200\217\326\365u&1>\372\350\237\236I\314n\322a\366vb\217\253e3[\327\031\375\314\355j\177u\230\036\375R\203f~\177[(\307I\303\363\311\366u(2\024\240w{B$\342=(K\001\245\226H\323\213\265/A\352\274h\274\324\027\2004\t=\001L\236\323s\371\266\244\006\251pZ?\335_\356+\0174\373\201\367\335\345\036\344@&k\277+\367\227\177\256\014\3337\305C}*\252G\037\350\017\200{ W\240GV\317\276\320_\3606""\361 !<\006=\2501\026\320Yp<@\347\201#\216N\334\221@'\341XGg\335\261\201\316\206\343o'vP\347\004:\023\316(:Q\347\003t\0368\037\242\363\320\271\204\316\222s\003\235\r\347Kt^:\377v\341w.\005\035\305\025@'\340\232Cg\316\025C'\346\322\320\321\\K\350,\2716\320\331p\275F\347\265k\364\0308\243\307\002\350\004\216M\2423y,xLb\241\337\213\257\313\277UT\222\r\305o\313=z?H\001\375\256\267\256\324\247\251q\007*F\307>Q\352+]*\251\330\275\277\2006\273\013\211\034\277X:\001\024\277\004B\347\370\227\245\353\345i\030\320\006\252\375;\307\317\027\343\306\333_\226\276/M\227\022e\210\275P\314\361\017\201\211\356\334\355V\016~[v\224\257T\216W\035\325K\325\245\332x}\244\236h\334\320g\343z\034\032\0138w\003\352\226\355Q\220\334\212c\004\235\021\207\307a\025\337`[\310\361\332.9\242\364\342?\373\313V\036\"\247\232\n\361{\021+~\367\307\003a\211\337j\267k\323-Xb\240\342\250\\\252$\253\257` Zj(\215\205v\005%\321b\313\306\017\215\362\336\252\232D\033\372\001K\373\351\366\303R\017\016\ng\212\203\320wY\341f\213\367\240\211\373\315f\272\010E\275\007\035\356L\345ne\263:_\013\327\362\365?\365\351'\372\023\030\026W\365U\030\026_\351\257P\314p&\\-\367\031\231\374\364s\227\274\300A\323Re\274:RM\324\256\324\2177\034\215K\215\224\376`Y_\006\241\237\327\363\005\250\311\246!GG\321\031u\214\265\342\244\367?\333\345w\262%\306\224_\237mo\225\234\245aA\220a/\270\\\332h\221h\026\017\021\264\3523\244\316y\0306\263\225\263\225\331\352\317\320\210\321\372\327\215G\372\002\264\321\206\276\001\002\307\034\313M\356\001g\312\302,\340x\2618\274s\326]\376Oy\003\230\257\367\263\355\\\261\277\370g\371sH\364\3649\006\245\230\213@\344\364\205\342\306\273\323\347\261D\345\236\235\037\356U\343\265\276\332\020\264Y\377\316/\277\356\334\272[\365A\270\037A\004v\214AEW@\002\027\364\302\246""\004]\367\332CnA\227\275Y{\333\310\350\217\237\310\003\2014(0\310\233/\377R\231\250\346k\367\352}\365\301\306\037\372<0\322&\202\327\036\223w\300\031\263\306`\024\337\206\274O\243\2236\310\377\032\235\327\2167\350\274q\214\243\024\037wF\320\211\030\202^EGu.\242\263\350\214;[p\261\202r\226\265\024\002\267\343\275\333A\306b\320X?\226{+J\345a\255\007\260\005\320\374%t\275! \377\351\263\200\316\224\235\2637*c\325\341\252\362\356\364@\345?\225\215j\017\247\251\362\376Sj\372w\307\277*\335.=\252\234\253\254\002\311\257\327\247\353\352\316\327\356\362\247\025\r\246\037Z}\0303\274]\216T\216U\036\301\363\357j\n\310\230K\003\020\234\251\366\277\377\370\243\023\247\031\314SP\204o\340\273w\365\253#\365~d\250\037!y/c\230\273\300\020.\350\001\300U\316\342O\245\301\3620\262\304\347\305\273\305\2270F\\\006\374p\366\334\273\323}\310;0\320\000h\200\016\334\263s\341\342\316\331/\365/\307\352\033;\027\201'\2412\027\277.\371\340\203~\210\347\211\274;~R?\371\337\3222r\326\331\342\375\222Z*\224C\200>z\257B\217C\260u\212q\243\355\303/\352\375\357\300\233\007\241\264Q=\006|\014E\276\263\255n\377S\212\224\235\254\204\275\004\033\372wz\261\254\033\330\315\241\024\247\240\013\003h\312\353\337\377^S0i\304\270\037\227\342\345\263\345\007\220\224\253\252T\243\330\026\200\205\224:\357\025E\366\236\217I\305^\224\224\220\316\273\343\275z\357\177\001\311\243\244F\377\327%\005\tzj;\200C\347N/\307\312\017+=\225\257\252@_d\351~\375\363\357\221\232M\357}\r\303\350j\245O\277\206\005\202\3609\350\036\377\300\220\233\206v\3478\\\342\037\336D\274\3616\214\254wz\317\025gJ7\251\353\352\237}[z^\326\000\027A\357VA:\001\r\277\0001\365\034\345@E\335\351\353/_\000\036\230nz\274\005\203\315\325j\037\214\363L\200`\317\004V\235,\235\203\341\276\367l\321\253_\034\252\250\225\r\363)\226\341\363\342\245b\212uS\022B(\376\201\340?\226\216\227\217A\303\366b\005~\205\032.!\323\\(\346Y#\364\342\260\302p\004LN\247\3371\316\372\025\260\233\312D\355\351s\305y\370\342\231\301\362\247\364SPN\201\3531\257\273\333\205\"od`\273\235""\343\237nk\305\237A`\364\363g\330\217X\017;\003\345Cic\260\332\014\200\310\323_\202\260\371\261\374\031V\005\333\365\033\020i$\357~d\203\001\224\363-\224%W\351gc\336\364\273\323\027\364\013\203\225\276\312\345\312\033\326\205\256\341Hz\3556 \010\2253)+\266\220l\233\324\206[S\032\006\270\n\024\370\274x\007\312\271\t\334\333S>W\216W.T{\376\007\315\177\332\252\356sx\376\034[\202\321\016\034\035\232\261\017\332\340\024B\274\223\320\330\2758\033x\005\025d\3147\001\315\332\313!2\177\351b\351[\340\306\263\225i\014\366\025\217\025g\241-|\220[\002K\266\203%\203jAq\026j \342\277\201y\036v\036\326\3217\364\213\003\025'\362\323\305R\217\376\305u\375\372x\243\247\321\207-\365\010\336\032\002jp\306\325/\014\240\254h\237\003\340\320\252\267v\002{\226\231\303\271\342C\250\365\177\221n\224\010v\354a^j\026\036d\235\010\330\304.\311a`\331K\325d\r\270\030\307\262~\220\260\247\2617\364\343L\242\362W\355RM\305g\234\2512\300\365F.\203H\014\222\250\310\351\n2\356\275R_\253\363S\251_p~\306!\2669\362G\350-\326\007\277aC}\216\214/|\000\317\200\211\217\233L\214\325\301\232\177\005#\30046\362\275\342\347\310\323\310\223_\225\225\362Ch\215>C\342[\237\365n\007\2609NV\357\325v\223\037B\337\261\276?_TAzm\217\301p\317z\347\035\230s\001\311.\202\024T\241\313`\203\353\027~\340bu\347\354\027\254(Q`\331\353lZ\005\203\022p\324N\337\271b\244t\2544m\260\000L\025\364\253\277\324\316\3276@\366\023\371\377\204\217\256V\317W7j=(\236!\273/Jl\224\313\353\237_\242D\373\221\017\246\215\016s\017\006\375a.\224\377)/\200\260)@\035\316\342Wg/\000\320:S\272\303\212x\321]v\301\367\3238\262\334\325\277\375\tr\350\255+;_\3673R\342`\372\025\006\257U\372\337\261\221\314\311\253\272A\005\323\277\272\216\303\206\321;\2008\275\346p\nQ\200p\220\375\220\320\236\3557%?\220\022E\251$\001\215&z\300$\024\244\275Y\234\325\277\272]\375\036ht\017\231\033\373\370\000\004\247w\372.\0247\365o~\252\346`X\374\030\206\347\323\200V+\363\325\010\022\345s\034\021p\260:\0162\2744\335\332\326\346\000\t\274\377\211%^\220\335N\225gA\236\220\027""\304\232\364\335\247\333\253@4KzC\272\305S\245\250\336\217\2642Q\304'\255\357\0230\301\367?-i\345\337\241~'Y\253s0\367\336\305'EW>\260R\000\261\354b\255\207+<\254\351\021\202\233h\345\213\352u@\335\347\353\033\215\023\3724$\366T\177\272\244/\001\342\203I\022LM\270\226S\236:\020\026\247\tR\014\235\230CCGs,\241\263\344\310\240\2231p\337?\350\374\343\270\217\020\357\2761\353\247\351>\341\276\024:)g\026\235\2543\207N\316\231w\322\034\345z\2054v4\226\217\243\200\206N<\\Ux\327\277\240_\374\021\330\245\0275\243\247@\254\350_\336\2552a\2008\211\r\255\313\300!'Qgz\212\244\016\303\";\034z\035\003q\201\340\005\372(5/v\362\373\305\265\362\275\nq\002\316|X\034\342v\350@\034\207\204J\277\224G+\014P\234\022!\r<`\205\0054q\231)\000\256\2408\"\026\260&\230\266\332\336\356\246W\255sO\316-\347\330t\305\230\177~Q\372\2564Z\036\250|W\361V?\256\256\324\026\353\256z@\237\202\031\005\314\0149\246']\240\254\004|\202\316\023\243m\t\323S\243\256\323\224*\005\222\214\346\252\177+\022S\267\260p_+\373\376\330\350i\307\255\327+\267+\315\263\371\342\205\222\003 O\262\374\212i\036\224\332B}U\237\236\325g\271\276\020X\026\371\037g~M\332\007\252\027\315\030i\222\"\317\030W\251B\317\312=B\205D\265\210\331$\035*t\247\256\266\253\320\315J\030\004\217\353s.\271\347\261r\262\372\r\233\311[>\001\003\265\267\3661\214\270[\215\223zd\317\225[Ag\245\251\265^\242\363\322\341\303\036\345s\206\320\t9g\320\231q\316\2423\353\234sJ\r\372W\251\037(p\t\006\304\003\350|y+>\256\365\357\336\216kzdQ_\214\353q\256s\345\363}RM\023;\316\2433ou\234\226\366\372\240\245\335\237>\335,-\033:>\333N\024\007J\003l\006\330\006t\023\264\262\034>q\340\201<\342\242\222\302\023;\315\202?\002\032\352\223#`\022\321\374\306\267\210Lx\0320\007\000\034\322c\004F\212\thy\026@\270\234\007\222!iQ\375\360\022j\362\252\207\244\301[t\336:Hp\217\241ju\314\265\202\316\212+\351z\177\367\360\372\315Pe\261zJ\377#\244\207\240\013p\3053)\200\210\325M\365Bs\273}\t\023\373h\371\013\200]Q\006\253N4\276\322\243s\372\034\364\246'\372\023\030\335xo\"E\006I;RN""\217a\305\306\2341tb\306Pt\037\353w\3375\201\316\204\241r\236Gg\336\265\214\316\262+\213N\326\265\205\316\226\353-:o]\177\243\222\371\357c\n)\231\327\314\245\247w#\036\224\231\247,QI\022\235\323\007'c\002\251f\252\003\265k\365\321F\377>e\346\345\352fm\272\226\254\277\322\303\363\372&\305\016\221\205Fvy5s\255\265\017B\205\006\204\n5\r\002\266\025\3625\332v\310\033\225\021\230l7U\010\325\251wa\252}\262\372\243%'\017\267B\202\006\226WH\020)R\013\3312\363\275}W\350\356Q\265\220\\\241+\207\327;\177\250d\253-kz\270\010\234(\017V~c\252\350\236\372\027\215\353\372\314\341VHX7\036\201\224\027\336\3378\334:}\005\200\335\365y\361Oc\325\354Lq\310\322\217\356Z?\030\251\215\325g6R\313+\207\244\261\246\372\221\300\221-\003<(p<\006J\246!\372\021:\217\234\217\321y\354|\342\224(\301\007\354k\250\330\352r\335\323^\361\376X\177\320\315\372\221\270\330z(\231B\216\232\256\241\302\037Em\217\231\033\361GK\246\327=\365\341n3E\021x\005\230\023W\202\226\252\343\265\221Z\242~\243\261\246?\354\252\246\202t;\224L\237\351\317V\365\325\347\372s\016\033\310\216\305\217\216\337q\277\213L\367\nknW\277\253N\326[z)\256{\237-/TVkgk\263\365\341\272\037\233\301~\271\210\006\3349t\346\014\3765\247\007\255\353\340\327=\272\007\001\322\256\313\212\273\321\n\312\322q\rh\272\225\\\036\357aNC\020}\364t\005,\026\364\005n\345\002\200pS\337|\216\375\330\300\204DFZ$!\010E\263dS\260\201\263\006\270\275\005#@\205\206\016O\270\341\032\020\310\263\013\250g\354\251\\D\256\271\250_\344\312\226\246x\273\205\240\337\364\331=W\224&!\362\232\234\202RLq\006\320\t\0302-\216N\334\231@'\341\314\240\2231\226\375\t|M\2413\345\232Fg\332\025v\211+E\372\311\377\352\377\275]\355o\345\202\303!\232\314\005\207C\234\216\\ \030\332y\036\350\017\230t\024\007:\246t*\365w\254\326O\355\361\"\242\221T\355F\275;D\"V\215K\007\022\2244\343\241\005ty\232F\030=\207N\316\230\207\222\345\007\261\300\210\263\031\243\274wqL\360\341ud?\327\034\265\376f\035\331\345r\270\234\257\374R\235\250\345\021\3335\006\365\010""\214\3640]\345\263?\220N\334>\210\206\017\232O\220\\\227g\347*:\252c\031\235e\2038\204\000hJE\304\241\2161\211\316\2441\364S\307H\243\223v\346\321\311;\013\350\024\234\233\206\236\354f\305d\232\353\336\272r\260\361*\255?\342\026\n\246\325\2179P\221\031a\213\000\276\341\325\275\250\263\220\354\236\2722c\2643\224\370\275\361F\177\204sl#\177y\371\3314\370d#\023\221w\021\235EG\026\235\254\301{y\031\n\233\266\215^\337a\316Xv\031/f,\274\010\375\231\033\330\002\0360\301\200\254c%\243\326\247\350<5\230\306\024\021\244\340i\036/\240\3630Qs\343\310\3548\310p\243\215\335\034\324\010\330\205\267\225\214md\033]YW\274\334\212\"\214\212|x)\360K\355Lm\270Y\n\\)/V\\\025\177\365a\335\205s\360\306/z\024\304! Hn\246\010\351q59\tE\271\352\244\006\"\344D\374I\335\237\364\220\304\255\262l\244\356\037D'h\214\222\032:\2321<\232\335\037E\262\363\271!\005\206*\246\271+\357\215\327\272S3\013#IG\310\376P\237\007\274\016\262\257y\256c\"3\322\177\265 w,\016\003\2307\216\244D6\323\007\0313\322\300K\275Jm-\340M\237\356C\035\021\222\254\033\373.;\3119\244OA\022\234/:(m\333\251\007{\336\371F\355\005w7\364\261\027\345\253\372\002_\3241\213$\343\222Q\033Q\356\253O\3337S\263\030\357`\352\366{\343\265\376\260\243\031\232=\313\030\202\2728\315d\001{\373\303\313\202_\321\346\247Y\026\\e\254\267P]\255\237\255\3176\206\033~}\006d9$\306\347vPM\336%\210\377\344!S\326r\330.F\320\220e\002$d\031C\010\220\366\376\t:O\014\013\331ut\326-!\200\272\004\347\013C\026\374P1y\333\207c\316\376eA[\316\202\306\355Z\026\210\\n\364\263\303g\364\375\024\347\207Q}\024\2258\335\316[\333\354v\200$\200\013\272B,\363\255\372\254!(\004\220\205\365\225\273\273\224\003\215\316\\\027M\037\207\032\263\345\237+\267\201\325\317W_\324\262\300\241\217\230\255)o!44e\333gd\236\224\315]e\210A\354G*)\257S\004\034\302\214kh\264\256v\2135\333\227\262+\t%L\216\177\030\323\307\000Iq\251O\2046%\273\275-\353>6\322\300@ob\032\271\031e\024##N\231p\362PN\335\227\326\027\236:\355\367\335\214\215\333S\264=D\353\353J\247\20238C\005+s\347xk\247\200B\354}""\244FSX\003(v\\\177n_\024\373\216\"\255O\216\341\204t\377\342\243c\301:\353\250i\022?\323\262\014\016#\025C}G\r\277\271\351\306l\345\347\352m\246\205zQ\3176\316\242\3314`\240u}\235\317HiJN\352g\271\223\333.\177\013V\026=\357\306\027qh2\260\024\261\370(r\354\2503\211N\322\031D5L\320\225A'\343Zw\275\277\267\337\266h#\022\036\261\311\337+\\\341\353!\322SAh\331\217\366\215\254\240\263\342|\213\316[c\213\010\355\r\231Dg\322\365\010\235G\256\307\350m\031t\017S\001\334m\005D;\244\375\255\270\036Q\005\330V\300=Z\334\354\263\005\204\025\237\303\007^O\230\270\0001\374R\177\211\263\336\026\232\035\001\314\262\317S\250\346\276\363\264\257\346\033q\237\0018zY\203J\261\363\225\027\325,\263'\370\271q\273\021\325\247y\361\370d\236\360\215\254\205\221Y\333vqCP`\005\213\375\270\207\251\027\267B\230\273\323\214\035\\\264\325\3138\320\001\206$}\350\357z\217\256L3#a\350q\363\224\336\217\325\3516':\334g\333\254\\|S\233K\377z\210!6G\355*\310\372i\353\034\007aw\367ic+\212\271\013\034w[\034\007\252\350\256oJ\323\302\226\002\334\245\343\304\335\213g\240\333\341\030\310\366""\220\374R\272_^\302\315\201lW\007\210\017\334\260hl\3519\317-\334\215](\362.8\250\351'\037\035;\317\010\244\3770R\357\257\017\327\231\266\023\332\361\370\366\261\355Y\250\217\017\313\362\351\36624\352RI)\315\340FU\264g\342\"\234\321\247\336'\037\204q\255\322\257_\377\2436\255\377\031lhz$\252Gg\350}@mm\3106\306\273'?\010\243\317\262M\035\007bB\365qS\016\032\257\212\004\3077iK\307\340\310=\332\324/0\330(\033\242\323\032w\030\235\260\261#\2304c\244` \215\366kt^;\337\240\363\3069\216S\370qW\004\235\010\314\344\361\003W\002\235\204u\364\203\275F\355\322\357\372\357\310\321\322\364v\177v\3427\353\033]Y\212s\213\t\016]\271=\010)\270h\206G\355j\277,%\260\310\345?\364?\360T\032i]}\257EG\223\217\265\332\037\215\236n[\275\325\024\344\r;i\007\371]\337\300\203|\304\266\247\272P%\314\265]\266pM\223B\332\016D\373\200\246\320\231rN\2433m\2309,\243\263l\354\003z\201\316\013\347\026:[\316\227N\373e|N\232\201\303\262\371\351\376\270\232\207\372\024\364\322\005}\341\001\263\234D\335\233A\024\3310\206\346QD\024\032\351\314)2\242qG\241u1\022\353\205Gp\035\336V\024\252\3327\255f?]U\316\346(\034S\254\261\n\312G0\220\232\316~\021A\250\347\325\001\3518\ra\225\325\252\330lux\237\206\325\367\310N\357\033\006\003\270\3046W\354\t\261\312\312\322`\353\334\361\312\237\372\237\210#\244u\341\275\026\264\013\331q\205@\366)v\010\221\275\"\201\364\317Dr\331\356%\336*;x\271\007\016\317\"\256\353\2552\253\372\264x\204\220(3\366\335=\204\212]\375K\377\013\352\306z\310\335\003\310E\266\313\244\366\240\376R\237\016wk\035\331j\006\n\354\005\322~\327U\177\232_\323\304ZV\226\3216I?v\024\277\261?\362):O\215S2h\233$\255\362\322\336\033R""r\223B>\344j\263J7\000\364B |\240\361\0171\304\327\265\307\215\376\335\r\377\371\271@{\037,VZ\025\261\1773;\377\201\303\335\221\367\246\3262\333\335}\037\236\2509\261=\337\210\260\017-\261\320\261W\346a4d\350\337\262\201\362O\224\263\207\335Ic\255\025\334\265\223\002\367\036j'\205Z\331\032\343\266\330k\234+\253v\025\\i<\323\347\037\263Ck\332\016h\312\236\0073n\370a*\355\272\337\002\273\205\316\226a\251E\013b\264al\274ud[\340\363\002K\003|\373\250i1Y\373\032O)\353N\212\035\214N\362^\226N\313\340\264\376\335\205\2457\355\2573M\274\261%\214e;\332b\370\002\235\027\256\177\320\371\307\332f'\322^\020z\017\036\036)\377\355e\263r\323qz0\377B\245\r[\336$\315\237\274\356#\317\n\344\355\274d\036dr\036;W\311\357l\351~P\375k\037\242\372\342\326fi\233\363\321\223\202:\241l4=\217\316\274\301j\235\314%\rj\361\2054\262&!\311g\035ax\353\310\211\210\300\360\r\323\267p}\017;Y\350PiID$\350\361\n\235W\006F79\210A\017\231z4\035'\"\222\271\331+t^9G\261\373\215\032\035\225\366\303.\240\263\340z\340\222\010\374KQA\002slD\203%\311\016\313\374\375\336\221\3239V\0135\376\322\037\340\264\234I\n<;d\236V'm\375\373&\273|.\032\tF\352\270\362\334\327\334\326\307\324\037k\350\254\031s_R\177\214 MG\\\036t<\006\324#B\223|\214\243\0237\224!d\227\361\022\235\227\206\264\364\342nd\3571\037:\276c\243\307\244\006\372\tU\223\\\037u\243\244\232\253\224\020\243\362z\221U\0161\2205\370\375\272\377S,\204\366\3043n\204\237\316\026~\322\202\211-\241i\004\222wV\220\001%Q\177\016\2359\203\333M{,\302\333\266\264\351\336\200r\227\332\036\221\201\365\345?k\252\244\357\337\217\222(\325<\271\333m\207\320k=\262\267C\272i\322J\234DME\330\212\304\372+\033S\340w\352\342A\216L\021\310\317,4\310P\255\023\237ue\302\335q\n\316\307\025(\370\241\362\315\201\313\034\261]H<\254\275\356\035WB\005!z\270+\241\3736[j\273\377i\267\0256v\3523\036y\265a\331B\264+\210\235MI\373C|\324.\354L\2722=\020\354L\216\300\324\305\376\024[!\317\033G}\302\221\275\301\310+\266\235yOv\234\202\266\357\237\267G_\356N=XZ3\335\303F\026\241/\034y\371;\215""\\{\222@\326\350u\270\"\262\243U\251\315\222\214i\r\330b\262s\250\305:<\263\261\0176\240\354e\337P\227\227\233\340\361\233g\312\367*\027\253g\030\212\230\257\207\353\371\306\357\372\334\274>\317\217\203\300\261\000\272/\311\325\301J\337.R^\316\200\031\366\267\275-b\206mU\\\324\027\371\001\003\022\304\032i\2724\342\217R\017?\361{\267|\331\332;\373\351d\241(\tL\206\223\354\215\360\211\375\330\244\251\3333\341\333\344\032f\273R c~=\306z\213\025$?\316\374`\2337\354\007\002\241\023u{\226\371~\371\342\335\215\233\335\326\242\355^c\373\341^\260\3419P\006\033\314\374\016\362\340\343v\332\316Bh\367\324;\233\025G\014$\316\317R\223l\221\214\365p\266\251\256\313\232\264\331&1\315\254{\240\331\371\rA\231\026}\366\315\241\003\346\320\326\242J\310\344\267\337\273\346*\274\n\340J\365x\315Q\273T[\252\2177F\032\tc\257\326\2562W<\372\377\200\3273\210\013\220\334\376\242\351>\206n\323\267\027\327*Z\363>2\266\355\257\265\036's\343`\351\257\211\007\337\001\315\240\227\354Y\376w\204\017\323xm\301C\343\234\234T\013@\270r\240k]f\365Y~\320 \237Y\347[\017\257\271v\375`\345\177\314J\317'3\270\315\000h\324R\207\177{wP\307\325\035\3712(qK\320\007(w\033\321\317\327!\272\332\275h^\326!\340\205\243/w\233\3537\0009\241}\224qz\221lc \333Y?\261\271\214\343\310\017qh\277\203u\327\003lLmN\363J\355\007\240\366w\345\357\312\243\225\201\352wl\215v\245\276\330p5\002\014\035\300\230g^\330$O\206e+\225G\006\265\257U\372?\\\271\273\330|\321\375\276\006q\327\305\021\226\275\363\234\005\220\306\256\007\230\310\267\362\355\252\0318\314R\333\217a\3201\367\242[\335mJ}\230\035\262\315l\005\320\334\036\267\224\2137\336\375\037\332i\322\311^B\336\036 m19r\272\267\001k\200\025\000\336\232\253:\362nA\333\023\211%$w\364to\007j\241Sr5\252\254\366\222\031\334\332)\317u\327\255P\367_>E\310Pk\312\352\031\223\321\211\374\255G\007\375\337\331\355\320\275\346N<\247\343p\017\257\353\331\363\321u\373\264V\026\316\253\373\363\257\303\254\303\376\014,\354\217\216$\034`{\024[\262\263.K\250E\323\322H\247\325h\324\214\034f\343\34023""\353\025\262H=\244c\370\2046l\332\367|\370k\361\207{\030%\320\005\004\2064\236\023\002\224\005\006\335FIv\007d\266Fk\304\266g\343\313v\227\264\t\201V\341\275\350x]!tB\256\007\350|t\304\325\357\376\334\361\031}\206_m\3005\005\005\275\320\254\244\226W\316d\010A\246\256dWD\226\177\262]\321}gG\215\352\341\327}\250\265\346\273\336\014\000\303\006LiL5I\027\347\030R\315\311\272W\276\363\346\255\243\243&\374(:|\317!vw\032X\344^/o\352!\263\r\331\320Fi\355\347M\207}\035Ec\263\3637\305\013\217\345[V\366\331\364r\233\313\247q\310\033\233\2720E$\343.\363\202#:\306Ub\022v%\356\221\233\255\016\037\222\321*\211\006\3333K\310J\234\006\006\323\262\207,\017[\364\323\217\036\037q\255\351\"\236=\032\375\003\226\004Dl\252\226\010\024\313\2520\331\006\210\216\365%\343J\332\371d\nA\272\005\253\345\370\250\335\352\336\202;\331z|{2\200\030\207&\343\253e\355/\013?\024\323y\331\312KV&wo n{\021\370#g\307e\200\017A\250]NF\330\323\020J\323o[\233&yBbn\252`\233\351\274H\r\257a\301\330\361Z\010\301\222e\360\332\201\356\325&\364(\236\200i\177C\360\002[^@\303L\275\300{\t\tO\333\313\277\371\260p\276\270T\272\217\035\371\370\366\177\360\322\325\rv\221.^\244x\270\245\337m0\224\212\317\364&4\006\356^\005\333U\243\275\026s\270z\246\332\"\214Q\027\350*\373+\017\231N\255\277\376Kc\222\365@n\216\301\255\232h\362G\320\304\366v\004I\023x\355@\205\354\223\207Sq\333\260]q\025\\rz\300\014\255a\320\260\273FP\336\021G\033\246\314;\346\030\244\332\2603\3068\020\261\273\032\367T\324nG\331\366~\020w\324\211M\243\006\361\332\261\313\007,LW\252\2155V\030~b8\336\312\310F_\333\363e':\3530\366~{H\377\3567\207\010k\266@).\353d\305\243\317FKw\220b\335i\355.\250\302\275TNV^1U\250R_\020\327\302a\360\3462\311\326xIT\332\242\021\311\265\003\225\354vu\032\225\214\237\032\0338\004\257])\327Z\256\222\223\361\267\254\263\245\256B\363""\315N[\360\250R\347\212\263\245_\260|\226\210=\317nJ\236\356\374\2140h\263M\315>\311\261[S\255\355\347>\275\266V\023{-$^\024*\027\221\257D\337-oUO\326\356\3266\353\323\365\244d\274\003s\004;y6f\263\370|\340\202\311\207Ow.W\0339{\330\345\352\n\013m\220\235\035\2376\020|\206\211U\013B\371\376\322\001\n\323\355\366\317\307\262e\024\207\256\266\247\365\337\267\331Sq\345\200\344\352J\377\362F6K\344r\224\372\201\275ew\033-\312^\313w\263u\010j\235\021\365\220\375\014\207\2654I\326\377y\333b\223u\345\352\001\013\323\325\004\355\224l\314\303\245;q\275\254\013\237tt\234f\355\375\254\200.\024J}d\352\305\247\216\242\026Qi=\202\362\352\300\201F\034Rz\210{\006E\177\233\223\nZ\017\302\260%\036MR\344;+\354/\003\026\355U\351@\217\203\326i72\357\375@\21766\335{?\003\241\211Ew;,\251\237,X\271\212\251Y\325\326\211\330\346I\315\273\230p\356Ylv1\361\237&\203R\276\016N\232\037\323\016S\020\220\003\203\007j\356.\365\3637e#`NB\322\305\310\0263\241\326\003$\240\210C\207[\304\275\034\226\365\303\236\246n\362A\013\266\233\343hq\201\3661\222\242\204\226\252\350^\336\270\375\271\362\377\3025\032\335j\244\305[\221`&a\263\372B*7\333uh\371Ls\371\300\r\322\313\322n[R\310\332\037\303/\030(}xJu\205\370^\351\017\236\350Ox?\200\364@\232\330\315\271\250G\220\306\236\324L\362z\225|\340\242\254\234%%%\035\317Fj&\223\263\350\374\206\316\260\362C\335\321\322\377/\335\320B\023.y%\235z$\261\030\021\214\016\250\247}\364\317\234\235M>>\014\335~k\275\345j\200Y\312%\253\257\352\227\352K\r\245\261\240\317Bg\004.\343\346\344\222j\314\026\230\312\267\033\022\227\311\207\000\312:M\371\222\033\352\236\013\350,4\035>\360\014\235g\316Ugg\213\374\017C;\326p\222N\324v5\271i\205\315fe\211\230\315\366\240\\\031\000\310\027h\222\370'\2559mc\227\017\021\210\265\2544\377\013\204\372\261:\335\314dh\275\353\255\234\250~U\363\326?\256\253\365-v\347\006\320\211\353_qr\246\277\264\323\326\310\007G\021\255d\373\003\031\231\312\007\\\320:<\0354i{\022\215\346l1\013~\367\372\315\277@6\274\264\267i \260\321\273=\324\347!5>\007\342J\211""\016\226A\264xi{f\034uM\031a\310G\033\321r\003\361\026\3113\272\212\322<\027\244\263\222\357\303\220\256\333e\315\246u\232\366+Z$\323d\003r\231\355h\261O>\340\203\326\200\211\337H\246\231\013[\035\265\264\037\206R\\\241/\262X\253\016\177B\237\003*q\235\004\327\243\2661\023\240u?\242\222l\027\"\017\000\362]\347\304^\264\250ET\262=\210CZ\310\370\360\324\272WU\233%\031\356\262\211V\276\250^\257E\353\347\353\033\215\023lo1\210{\216\363QQ\257\277\262\323\307\311\266\210$\356\345ERy\025\204D\030\031\031\020g\321Z)uIS\204\261\353!\227\234\255\333w\376\r1\326\377\301\205\030\235(B\354E\"\215\214\220\010\233\331\236\253\270\370\177Bz\261\205\r\211b\255\312\362U}\341\261\376\230k=`Z\016\263$\276\036$\333\034\313:\005Z7\220MW\344\273\035d\351O\246\n\204\310:\315/\333\252\341?\324\245\315=\377\322\225\315$\356M3/f\375D7\274\321pI,F\3674\322\311\306+\255w5\377+\327\334\366\375K\227\334v:\227\211\220,1\232I0\232=\331^>\362\201\351\366Su\243\231n\270\373/Q\031\254\376VK\324\2574z\032_\260\313\235`\320\344\333@Q\227\257\277\346\203\246\274uGV\367\330\036\205j.\2033\226\223-\013\t\375\223\2712\r\232\346\000@,\327\272\255\360\343\217\216}\246\177\212\n\342\r<\264\377\305v\256\330\277s\374\304\216\353\304v\037\323d\201\004\004>P,j\267\375\350\263\355\r\372\354\264~\032\225a\246\341\206\312\267*\021WX\010\340\356\241\034Y\301\016Y\350\346\360&q\363Q\367'\324\323\304\201\014nh\2565\352\2649\314Ne\240\361\306\221\232\254\341d`\262\336\327\272\016\337yTm\302m\035\306\010\232Q\311\214'\3538\310\200\215\244\033q\234i\236%\236\333N\223\001:\260]\276\222Oq\311c,?\322k1~\270\007\231t:\017\250\253\353\326\242\255\347\001\305\371\210A\363t\0321\255\2637\357\035J\371Yob?\273\334N)m\315\221-\221\273P\257\220J\317^[@\253dP\027\254u\342p[\346(\256\334|\227\340Mc\031(\017}\2603\204x;\220L\357\302\032\324\034\000[\326\000\023\315\267|\334>t\216\352X\023\351:\304.vx\020\177\331o\"\242zq\036Jh\207\324 \354B\030\3327\330\261.]m\\\267?\261O4\277~\247-\035.\367w\274\225rO{\250\205e\255\245\345Cb\225\275""\335\005\331\325^dyl\355\264=@\330\017\005\025\372p\247m\355\351\226n\351\276\306\2440A\275u\230\345\355\264/\366\251\376\024\367#\263\371q\027\273Rh@\227!d\326a7\006\033\260\357\024\200\377\223\215a\t\372\365~t\354\3646\253Z\017\024\274\237\233\214a\240\217\016j=\276\375\237\355\r\3754\263b}\307N\215\033.)\024\315oq\372\264\310\356\312:\311\036\034\307\233\243^\226\372JWa|\355\305s\272\330UX\303\372\331K\345@\025\312rj{\201\023\363?\377\333\240gE\226\336\t\274]\312|w\254r\257\332W\3557.\206\372\246\274\214WoT\331u\\X\322+\345\036\310\000r\373\221\335\316\325\277\323{\272\350(^.\346\220\370\360\354,\233&\376\004\350j\2546\314\364]P\372O\267\223\274\221\200 7`\230:Q\353\323\177\r4<\215\r\251B\237 \372\305Ca\277/>(\345Aj\364\002\301\214\262\372\201\3456\260\032s\354\256\254s\0344\363\340\264\221\214\263x\2738\003\324DC\332\242\267t\2544\315\255\236y{\\\375\253\266q\240;\254\370\225\026\323]\331PH\207w1\230H\375\200\020\263\375\221\037\202)\305\351\217\216\035\377_a{\0048\230O\t z[Az\037+\306\312\243x\245\330\357H`v\315\031\324\033j\210\215[\330\366\300\313\307\361\255\351\235\336S;\247\3173}\025^\207\346.\237\254\014\033\211\361\243\230\221,\2179B\260l\"\217~?\321\247\265tC9\244-d\324=iD\355b:L\232\252N\323a\021E<\342\344!\025\006u\177k\214\276}\344;k\336\3262\215\030?}\n\342\365\317\334\320\315.\342\342\260\350\337\367~\033[\244K3\023\371\0321Y\201,_0@\347h\3235b~t\374\256(:QW\014\235\230k\031\235e\327\032:k\2564:iW\306e\203\220\037s\244a\315\037\206\216\234!?\253\275m\250\235\250\273O\346\244\321\216\270F^n\224/p\222'\020\244pXEg\265\351z\032\242\365}t\356\273\246\320\231\262\256v\260A\213\000\202>\374\326\236\303\274\300\201D\023\261\252|\306\223l\317\323\311z\200f\326\235\254\007\304M\010O9t\264\304\342\275\243\201\204\273\234U\316\331IV\247\312c\207<\227\220u\364\346\376p\246b\0109\355\257\363\300qc\013o\235\344\203\303\21130\002O3\273\365\377_\375\357X\004\264\336 \203A\307/\024_\226\373\030\006})\310\235\201\017\336k\366{\201\222\275l\247\232t2\204 \221$\313""\"\371<\177\222\373d+\262\201\316\206!\213\314\233\004e\r\302\377\003\334\014\240Z"; + PyObject *data = __Pyx_DecompressString(cstring, 16678, 1); if (unlikely(!data)) __PYX_ERR(0, 1, __pyx_L1_error) const char* const bytes = __Pyx_PyBytes_AsString(data); #if !CYTHON_ASSUME_SAFE_MACROS if (likely(bytes)); else { Py_DECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) } #endif - #else /* compression: none (49848 bytes) */ -const char* const bytes = ": 3Allocation Error (TA_ALLOC_ERR)Bad Object (TA_BAD_OBJECT)Bad Parameter (TA_BAD_PARAM)Bull/Bear Pattern (Bearish < 0, Neutral = 0, Bullish > 0)Dashed LineDotted LineDouble Exponential Moving AverageExponential Moving AverageFunction Not Found (TA_FUNC_NOT_FOUND)Function has an unstable periodGroup Not Found (TA_GROUP_NOT_FOUND)Input Not All Initialized (TA_INPUT_NOT_ALL_INITIALIZE)Inputs:Internal Error (TA_INTERNAL_ERROR)Invalid Handle (TA_INVALID_HANDLE)Invalid List Type (TA_INVALID_LIST_TYPE)Invalid Parameter Function (TA_INVALID_PARAM_FUNCTION)Invalid Parameter Holder (TA_INVALID_PARAM_HOLDER)Invalid Parameter Holder Type (TA_INVALID_PARAM_HOLDER_TYPE)Invalid parameter value for Kaufman Adaptive Moving AverageLibrary Not Initialized (TA_LIB_NOT_INITIALIZE)MESA Adaptive Moving AverageNoneNot Supported (TA_NOT_SUPPORTED)Not enough price arguments: expected Note that Cython is deliberately stricter than PEP-484 and rejects subclasses of builtin types. If you need to pass subclasses then set the 'annotation_typing' directive to False.Out-of-Range End Index (TA_OUT_OF_RANGE_END_INDEX)Out-of-Range Start Index (TA_OUT_OF_RANGE_START_INDEX)Output Not All Initialized (TA_OUTPUT_NOT_ALL_INITIALIZE)Output can be negativeOutput can be positiveOutput can be zeroOutput is a candlestickOutput is over volumeOutput scale same as inputOutputs:Parameters:Pattern (Bool)Simple Moving AverageStrength Pattern ([-200..-100] = Bearish, [-100..0] = Getting Bearish, 0 = Neutral, [0..100] = Getting Bullish, [100-200] = Bullish)\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 se""t_input_arrays() method. Which keyed array(s) are used as inputs when\n calling the function is controlled using the input_names property.\n\n This class gets initialized with a TALIB function name and optionally an\n input_arrays object. It provides the following primary functions for\n setting inputs and retrieving results:\n\n ---- input_array/TA-function-parameter set-only functions -----\n - set_input_arrays(input_arrays)\n - set_function_args([input_arrays,] [param_args_andor_kwargs])\n\n Documentation for param_args_andor_kwargs can be seen by printing the\n Function instance or programmatically via the info, input_names and\n parameters properties.\n\n ----- result-returning functions -----\n - the outputs property wraps a method which ensures results are always valid\n - run([input_arrays]) # calls set_input_arrays and returns self.outputs\n - FunctionInstance([input_arrays,] [param_args_andor_kwargs]) # calls set_function_args and returns self.outputs\n Too many price arguments: expected Triangular Moving AverageTriple Exponential Moving AverageTriple Generalized Double Exponential Moving AverageUnknown ErrorUnknown Error (TA_UNKNOWN_ERR)Values represent a lower limitValues represent an upper limitWeighted Moving Average] )\n\n.?, ()( [=add_note(any ndarray)%(display_name)s (%(group)s)\n (expected function failed with error code , got input array has wrong dimensionsinput array lengths are differentinput array type is not double[input_arrays]input_arrays parameter missing required data keyinteger (values are -100, 0 or 100)numpy._core.multiarray failed to importnumpy._core.umath failed to import%s(%s) %sstream_%stalib/_abstract.pxitalib/_common.pxitalib/_func.pxitalib/_stream.pxitalib.collectionstalib.mathtalib.numpytalib.ordereddicttalib.pandastalib.polarstalib.systalib.threadingACCBANDSACOSADADDADOSCADXADXRALLAPOAROONAROONOSC__ARRAY_TYPESASINATANATRAVGDEVAVGPRICEAllCandleSettingsBBANDSBETABOPBodyDojiBo""dyLongBodyShortBodyVeryLongCCICDL2CROWSCDL3BLACKCROWSCDL3INSIDECDL3LINESTRIKECDL3OUTSIDECDL3STARSINSOUTHCDL3WHITESOLDIERSCDLABANDONEDBABYCDLADVANCEBLOCKCDLBELTHOLDCDLBREAKAWAYCDLCLOSINGMARUBOZUCDLCONCEALBABYSWALLCDLCOUNTERATTACKCDLDARKCLOUDCOVERCDLDOJICDLDOJISTARCDLDRAGONFLYDOJICDLENGULFINGCDLEVENINGDOJISTARCDLEVENINGSTARCDLGAPSIDESIDEWHITECDLGRAVESTONEDOJICDLHAMMERCDLHANGINGMANCDLHARAMICDLHARAMICROSSCDLHIGHWAVECDLHIKKAKECDLHIKKAKEMODCDLHOMINGPIGEONCDLIDENTICAL3CROWSCDLINNECKCDLINVERTEDHAMMERCDLKICKINGCDLKICKINGBYLENGTHCDLLADDERBOTTOMCDLLONGLEGGEDDOJICDLLONGLINECDLMARUBOZUCDLMATCHINGLOWCDLMATHOLDCDLMORNINGDOJISTARCDLMORNINGSTARCDLONNECKCDLPIERCINGCDLRICKSHAWMANCDLRISEFALL3METHODSCDLSEPARATINGLINESCDLSHOOTINGSTARCDLSHORTLINECDLSPINNINGTOPCDLSTALLEDPATTERNCDLSTICKSANDWICHCDLTAKURICDLTASUKIGAPCDLTHRUSTINGCDLTRISTARCDLUNIQUE3RIVERCDLUPSIDEGAP2CROWSCDLXSIDEGAP3METHODSCEILCMOCORRELCOSCOSHCandleSettingTypeDEMADIVDXDataFrameDotEMAEXPEqualFLOORFarFunctionFunction.__call__Function.__call_functionFunction.__check_opt_input_valueFunction.__get_opt_input_valueFunction.__init__Function.__input_price_series_namesFunction.__localFunction.__repr__Function.__str__Function.__unicode___Function__call_function_Function__check_opt_input_value_Function__get_opt_input_value_Function__input_price_series_names_Function__local_Function__localdata_Function__name_Function__namestrFunction.function_flagsFunction.get_input_arraysFunction.get_input_namesFunction.get_parametersFunction.infoFunction.lookbackFunction.output_flagsFunction.output_namesFunction.outputsFunction.runFunction.set_function_argsFunction.set_input_arraysFunction.set_input_namesFunction.set_parametersHT_DCPERIODHT_DCPHASEHT_PHASORHT_SINEHT_TRENDLINEHT_TRENDMODEHighLowHistogramIMI__INPUT_ARRAYS_TYPES__INPUT_PRICE_SERIES_DEFAULTSKAMALINEARREGLINEARREG_ANGLELINEARREG_INTERCEPTLINEARREG_SLOPELNLOG10LineMAMACDMACDEXTMACDFIXMAMAMAVPMAXMAXINDEXMA_TypeMA_Type.__getitem__MA_Type.__init__MEDPRICEMFIMIDPOINTMIDPRICEMINMININDEXMINMAXMINMAX""INDEXMINUS_DIMINUS_DMMOMMULTNATRNONENearOBVOrderedDict__PANDAS_DATAFRAME__PANDAS_SERIESPLUS_DIPLUS_DM__POLARS_DATAFRAME__POLARS_SERIESPPO__Pyx_PyDict_NextRefROCROCPROCRROCR100RSIRangeTypeRealBodySARSAREXTSINSINHSMASQRTSTDDEVSTOCHSTOCHFSTOCHRSISUBSUMSeriesShadowLongShadowShortShadowVeryLongShadowVeryShortShadowsT3TANTANHTA_ACCBANDSTA_ACOSTA_ADTA_ADDTA_ADOSCTA_ADXTA_ADXRTA_APOTA_AROONTA_AROONOSCTA_ASINTA_ATANTA_ATRTA_AVGDEVTA_AVGPRICETA_BBANDSTA_BETATA_BOPTA_CCITA_CDL2CROWSTA_CDL3BLACKCROWSTA_CDL3INSIDETA_CDL3LINESTRIKETA_CDL3OUTSIDETA_CDL3STARSINSOUTHTA_CDL3WHITESOLDIERSTA_CDLABANDONEDBABYTA_CDLADVANCEBLOCKTA_CDLBELTHOLDTA_CDLBREAKAWAYTA_CDLCLOSINGMARUBOZUTA_CDLCONCEALBABYSWALLTA_CDLCOUNTERATTACKTA_CDLDARKCLOUDCOVERTA_CDLDOJITA_CDLDOJISTARTA_CDLDRAGONFLYDOJITA_CDLENGULFINGTA_CDLEVENINGDOJISTARTA_CDLEVENINGSTARTA_CDLGAPSIDESIDEWHITETA_CDLGRAVESTONEDOJITA_CDLHAMMERTA_CDLHANGINGMANTA_CDLHARAMITA_CDLHARAMICROSSTA_CDLHIGHWAVETA_CDLHIKKAKETA_CDLHIKKAKEMODTA_CDLHOMINGPIGEONTA_CDLIDENTICAL3CROWSTA_CDLINNECKTA_CDLINVERTEDHAMMERTA_CDLKICKINGTA_CDLKICKINGBYLENGTHTA_CDLLADDERBOTTOMTA_CDLLONGLEGGEDDOJITA_CDLLONGLINETA_CDLMARUBOZUTA_CDLMATCHINGLOWTA_CDLMATHOLDTA_CDLMORNINGDOJISTARTA_CDLMORNINGSTARTA_CDLONNECKTA_CDLPIERCINGTA_CDLRICKSHAWMANTA_CDLRISEFALL3METHODSTA_CDLSEPARATINGLINESTA_CDLSHOOTINGSTARTA_CDLSHORTLINETA_CDLSPINNINGTOPTA_CDLSTALLEDPATTERNTA_CDLSTICKSANDWICHTA_CDLTAKURITA_CDLTASUKIGAPTA_CDLTHRUSTINGTA_CDLTRISTARTA_CDLUNIQUE3RIVERTA_CDLUPSIDEGAP2CROWSTA_CDLXSIDEGAP3METHODSTA_CEILTA_CMOTA_CORRELTA_COSTA_COSHTA_DEMATA_DIVTA_DXTA_EMATA_EXPTA_FLOOR__TA_FUNCTION_NAMES__TA_FUNC_FLAGSTA_FuncTableAllocTA_FuncTableFreeTA_GetFuncHandleTA_GetFuncInfoTA_GetInputParameterInfoTA_GetLookbackTA_GetOptInputParameterInfoTA_GetOutputParameterInfoTA_GroupTableAllocTA_GroupTableFreeTA_HT_DCPERIODTA_HT_DCPHASETA_HT_PHASORTA_HT_SINETA_HT_TRENDLINETA_HT_TRENDMODETA_IMITA_INPUT_FLAGSTA_InitializeTA_KAMATA_LINEARREGTA_LINEARREG_ANGLETA_LINEARREG_INTERCEPTTA_LINEARREG_SLOPETA_LNTA_LOG10TA_MATA_MAC""DTA_MACDEXTTA_MACDFIXTA_MAMATA_MAVPTA_MAXTA_MAXINDEXTA_MEDPRICETA_MFITA_MIDPOINTTA_MIDPRICETA_MINTA_MININDEXTA_MINMAXTA_MINMAXINDEXTA_MINUS_DITA_MINUS_DMTA_MOMTA_MULTTA_NATRTA_OBVTA_OUTPUT_FLAGSTA_PLUS_DITA_PLUS_DMTA_PPOTA_ParamHolderAllocTA_ParamHolderFreeTA_ROCTA_ROCPTA_ROCRTA_ROCR100TA_RSITA_RestoreCandleDefaultSettingsTA_SARTA_SAREXTTA_SINTA_SINHTA_SMATA_SQRTTA_STDDEVTA_STOCHTA_STOCHFTA_STOCHRSITA_SUBTA_SUMTA_SetCandleSettingsTA_SetCompatibilityTA_SetOptInputParamIntegerTA_SetOptInputParamRealTA_SetUnstablePeriodTA_ShutdownTA_T3TA_TANTA_TANHTA_TEMATA_TRANGETA_TRIMATA_TRIXTA_TSFTA_TYPPRICETA_ULTOSCTA_VARTA_WCLPRICETA_WILLRTA_WMATEMATRANGETRIMATRIXTSFTYPPRICEULTOSCVARWCLPRICEWILLRWMAaccelerationaccelerationinitlongaccelerationinitshortaccelerationlongaccelerationmaxlongaccelerationmaxshortaccelerationshort__all____annotate__appendargargsasciiastypeasyncio.coroutinesavgperiodbbegidxbytes2str__call____call_function__check_opt_input_value__class_getitem__cline_in_tracebackclonecloseclose_datacollectionscolumn_stackcolumnscopyddecodedefault_valuedefaultsdisplay_name__doc__docsdocumentationemptyendidxenumeratefactorfastd_matypefastd_periodfastk_periodfastlimitfastmatypefastperiodflagflagsflags_lookup_dict__func__func_argsfunc_infofunc_linefunc_objectfunction_flagsfunction_namefunctions_get_defaults_and_docs__get_flagsget_input_arraysget_input_names__get_opt_input_valueget_parameters__getitem__groupgroupshelphighhigh_dataholderiididximport_errorinindexinfo__init__input_arraysinput_nameinput_namesinput_price_series_names__input_price_series_namesinteger_is_coroutineis_emptyitemskeykeyskwargslengthlocal__localloglookback_lookuplowlow_datalower__main__mathmatypemaxmax_intmaximummaxperiod__metaclass__minmin_intminperiodmissingmissing_keys__module____mro_entries__msgnname__name__nannbdevnbdevdnnbdevupno_existing_input_arraysnum_inputsnum_opt_inputsnum_outputsnumpyobjectoffsetonreverseopenopenInterestopen_dataoptInopt_inputopt_input_valuesopt_inputsordereddictoutoutaroondowno""utaroonupoutbegidxoutfamaoutfastdoutfastkoutinphaseoutintegeroutinteger_dataoutleadsineoutmacdoutmacdhistoutmacdsignaloutmamaoutmaxoutmaxidxoutmaxidx_dataoutminoutminidxoutminidx_dataoutnbelementoutputoutput_flagsoutput_nameoutput_namesoutputsoutputs_validoutquadratureoutrealoutreallowerbandoutrealmiddlebandoutrealupperbandoutsineoutslowdoutslowkpandasparamparam_nameparametersparamspenetrationperiodperiodsperiods_datapolarspop__prepare__priceprice0price1price_seriesprice_series_name_valuespricesproperty__qualname__rangetyperealreal0real0_datareal1real1_datareal_datareplace__repr__resultsretretCoderet_coderunsschemaselfseriesset_function_argsset_input_arraysset_input_names__set_name__set_parameterssetdefaultsettingtypesignalmatypesignalperiodskip_firstslowd_matypeslowd_periodslowk_matypeslowk_periodslowlimitslowmatypeslowperiodstartvalue__str__str2bytesstream_ACCBANDSstream_ACOSstream_ADstream_ADDstream_ADOSCstream_ADXstream_ADXRstream_APOstream_AROONstream_AROONOSCstream_ASINstream_ATANstream_ATRstream_AVGDEVstream_AVGPRICEstream_BBANDSstream_BETAstream_BOPstream_CCIstream_CDL2CROWSstream_CDL3BLACKCROWSstream_CDL3INSIDEstream_CDL3LINESTRIKEstream_CDL3OUTSIDEstream_CDL3STARSINSOUTHstream_CDL3WHITESOLDIERSstream_CDLABANDONEDBABYstream_CDLADVANCEBLOCKstream_CDLBELTHOLDstream_CDLBREAKAWAYstream_CDLCLOSINGMARUBOZUstream_CDLCONCEALBABYSWALLstream_CDLCOUNTERATTACKstream_CDLDARKCLOUDCOVERstream_CDLDOJIstream_CDLDOJISTARstream_CDLDRAGONFLYDOJIstream_CDLENGULFINGstream_CDLEVENINGDOJISTARstream_CDLEVENINGSTARstream_CDLGAPSIDESIDEWHITEstream_CDLGRAVESTONEDOJIstream_CDLHAMMERstream_CDLHANGINGMANstream_CDLHARAMIstream_CDLHARAMICROSSstream_CDLHIGHWAVEstream_CDLHIKKAKEstream_CDLHIKKAKEMODstream_CDLHOMINGPIGEONstream_CDLIDENTICAL3CROWSstream_CDLINNECKstream_CDLINVERTEDHAMMERstream_CDLKICKINGstream_CDLKICKINGBYLENGTHstream_CDLLADDERBOTTOMstream_CDLLONGLEGGEDDOJIstream_CDLLONGLINEstream_CDLMARUBOZUstream_CDLMATCHINGLOWstream_CDLMATHOLDstream_CDLMORNINGDOJISTARstream_CDLMORNINGSTARstre""am_CDLONNECKstream_CDLPIERCINGstream_CDLRICKSHAWMANstream_CDLRISEFALL3METHODSstream_CDLSEPARATINGLINESstream_CDLSHOOTINGSTARstream_CDLSHORTLINEstream_CDLSPINNINGTOPstream_CDLSTALLEDPATTERNstream_CDLSTICKSANDWICHstream_CDLTAKURIstream_CDLTASUKIGAPstream_CDLTHRUSTINGstream_CDLTRISTARstream_CDLUNIQUE3RIVERstream_CDLUPSIDEGAP2CROWSstream_CDLXSIDEGAP3METHODSstream_CEILstream_CMOstream_CORRELstream_COSstream_COSHstream_DEMAstream_DIVstream_DXstream_EMAstream_EXPstream_FLOORstream_HT_DCPERIODstream_HT_DCPHASEstream_HT_PHASORstream_HT_SINEstream_HT_TRENDLINEstream_HT_TRENDMODEstream_IMIstream_KAMAstream_LINEARREGstream_LINEARREG_ANGLEstream_LINEARREG_INTERCEPTstream_LINEARREG_SLOPEstream_LNstream_LOG10stream_MAstream_MACDstream_MACDEXTstream_MACDFIXstream_MAMAstream_MAVPstream_MAXstream_MAXINDEXstream_MEDPRICEstream_MFIstream_MIDPOINTstream_MIDPRICEstream_MINstream_MININDEXstream_MINMAXstream_MINMAXINDEXstream_MINUS_DIstream_MINUS_DMstream_MOMstream_MULTstream_NATRstream_OBVstream_PLUS_DIstream_PLUS_DMstream_PPOstream_ROCstream_ROCPstream_ROCRstream_ROCR100stream_RSIstream_SARstream_SAREXTstream_SINstream_SINHstream_SMAstream_SQRTstream_STDDEVstream_STOCHstream_STOCHFstream_STOCHRSIstream_SUBstream_SUMstream_T3stream_TANstream_TANHstream_TEMAstream_TRANGEstream_TRIMAstream_TRIXstream_TSFstream_TYPPRICEstream_ULTOSCstream_VARstream_WCLPRICEstream_WILLRstream_WMAsys_ta_check_success_ta_func_unst_ids_ta_getFuncInfo_ta_getFuncTable_ta_getGroupTable_ta_getInputParameterInfo_ta_getOptInputParameterInfo_ta_getOutputParameterInfo_ta_get_compatibility_ta_get_unstable_period_ta_initialize_ta_restore_candle_default_settings_ta_set_candle_settings_ta_set_compatibility_ta_set_unstable_period_ta_shutdown__ta_version__tabletalib._ta_lib__test__threadingtimeStamptimeperiodtimeperiod1timeperiod2timeperiod3to_numpytype_type__unicode__updateupdate_infouppervaluevalue_rangevaluesversionvfactorvolumevolume_data\200\001\34001\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330""\004\r\210T\220\026\220q\230\001\330\004\021\220\021\330\004\021\220\034\230R\230v\240X\250R\250t\2606\270\030\300\022\3004\300|\320S`\320`a\320am\320mn\320n}\320}~\320~\177\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\34001\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\034\230R\230v\240X\250R\250t\2606\270\030\300\022\3004\300|\320S`\320`a\320am\320mn\320n}\320}~\320~\177\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\34001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0337\260r\270\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\320\021$\240B\240d\250)\260;\270d\300&\310\001\310\031\320R_\320_`\320`l\320lm\320m|\360\000\000}\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002V\002\360\000\000V\002W\002\330\004\025\220Q\320\026,\250A\330\004\013\2101\200\001\3400H\320Hb\320b|\320|}\3600\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\017\210q\330\004\017\210q\330\004\021\220\034\230R\230v\240X\250R\250t\2606\270\030\300\022\3004\300|\320S`\320`o\320o~\360\000\000\177\001N\002\360\000\000N\002O\002\360\000\000O\002[\002\360\000\000[\002\\\002\360\000\000\\\002k\002\360\000\000k\002l\002\360\000\000l\002w\002\360\000\000w\002x\002\360\000\000x\002y\002\330\004\025\220Q\220o\240Q\330\004\013\210;\220a\200\001\340/0\360.\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\024\220A\330\004\022\220!\330\004\021\220\033\230B\230f\240H\250B\250d\260&\270\010\300\002\300$\300l\320Ra\320ab\320bn\320no\320o~\320~\177\360\000\000@\002J\002\360\000\000J\002K\002\360\000\000K\002[\002\360\000\000[\002\\\002\360\000\000\\\002]\002\330\004\025\220Q\220n\240A\330\004\013\210:\320\025%\240Q\200\001\340/0""\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\033\230B\230f\240H\250B\250d\260&\270\010\300\002\300$\300l\320R_\320_`\320`l\320lm\320m|\320|}\320}~\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\34012\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\035\230b\240\006\240h\250b\260\004\260F\270(\300\"\300D\310\014\320Ta\320ab\320bn\320no\320o~\320~\177\360\000\000@\002A\002\330\004\025\220Q\320\026&\240a\330\004\013\2101\200\001\340\004\017\320\017#\2401\330\004\013\2101\200\001\360\014\000\005\022\320\021+\2501\320,>\270a\320?O\310u\320TU\320UV\330\004\025\220Q\320\0263\2601\340\004\013\2109\220A\220T\230\021\330\004\013\2104\210q\220\003\2201\220H\230F\240!\340\004\007\200w\210c\220\025\220d\230%\230x\240x\250y\270\001\330\010\017\210t\2201\220C\220q\230\001\340\004\005\330\010\020\220\001\330\010\021\220\033\230A\230T\240\030\250\021\200\001\340#;\2701\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300]\320R[\320[\\\320\\h\320hi\320ix\360\000\000y\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002R\002\360\000\000R\002S\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340#;\2701\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300]\320R\\\320\\]\320]i\320ij\320jy\360\000\000z\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002S\002""\360\000\000S\002T\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340\004\022\320\0222\260!\2601\330\004\025\220Q\320\0269\270\021\200\001\360\014\000\005\022\220\037\240\001\320!3\2601\3204D\300A\300Q\330\004\025\220Q\320\026(\250\001\340\004\005\330\010\020\220\t\230\021\230$\230a\330\010\021\220\031\230!\2304\230q\330\010\030\230\t\240\021\240$\240a\330\010\032\230+\240Q\240d\250(\260!\330\010\026\220c\230\021\230$\230a\330\010\032\230#\230Q\230d\240!\330\010\027\220s\230!\2304\230q\200\001\34034\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\020\220\001\330\004\020\220\001\330\004\021\220\037\240\002\240&\250\010\260\002\260$\260f\270H\300B\300d\310,\320Vc\320cd\320dp\320pq\360\000\000r\001A\002\360\000\000A\002B\002\360\000\000B\002N\002\360\000\000N\002O\002\360\000\000O\002P\002\330\004\025\220Q\320\026(\250\001\330\004\013\210<\220q\200\001\34045\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033;\2702\270Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\320\021(\250\002\250$\250i\260{\300$\300f\310A\310Y\320Vc\320cd\320dp\320pq\360\000\000r\001A\002\360\000\000A\002L\002\360\000\000L\002S\002\360\000\000S\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002[\002\330\004\025\220Q\320\0260\260\001\330\004\013\2101\200\001\360\014\000\005\023\320\022#\2405\250\001\330\004\007\200t\210:\220Q\220m\2401\330\010\026\220d\230!\2301\330\004\016\210c\220\021\220$\220d\230!\2303\230a\230~\250Q\330\004\016\210c\220\021\220$\220d\230!\2303\230a\230~\250Q\360\006\000\005\010\200u\210B\210b\220\003\2205\230\002\230!\2302\230Q\330\010\017\210q\360\n\000\005\013\210!\330\004\010\210\005\210V\2201\220I\230W\240A\240Q\330\010\013\2101\210B\210b\220\002\220!\330\014\017\210w\220a\320\027(\250\001\250\021\250\"\250A\330\004\013\2101\200\001\34078\360&\000\005\014\210;\220a""\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\320\021$\240B\240f\250H\260B\260d\270&\300\010\310\002\310$\310l\320Zg\320gh\320ht\320tu\360\000\000v\001E\002\360\000\000E\002F\002\360\000\000F\002G\002\330\004\025\220Q\320\026,\250A\330\004\013\2101\200A\3602\000\t\021\220\004\220A\330\010\013\210:\220Q\220n\240A\330\014\033\2301\330\014\020\220\007\220t\320\0336\260a\330\020\023\320\023&\240g\250Q\330\024\030\230\n\240!\240>\260\021\330\024\036\230d\240'\250\034\260Q\340\024\036\230d\240'\250\021\330\020\023\2201\330\024 \240\007\240q\250\001\330\014\017\210s\220!\220>\240\023\240A\330\020\025\320\025%\240Q\330\020\025\320\025&\240a\330\020\027\220q\340\020\026\220i\230q\240\001\330/6\260c\270\021\270.\310\002\310!\3309:\33004\260E\270\021\270!\330\010\017\210q\200\001\340)A\320A[\320[u\320uv\3600\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260-\270\177\310o\320]^\330\004\017\320\017 \240\001\240\030\250\021\330\004\017\320\017 \240\001\240\030\250\021\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310=\320Xg\320gv\360\000\000w\001F\002\360\000\000F\002G\002\360\000\000G\002S\002\360\000\000S\002T\002\360\000\000T\002c\002\360\000\000c\002n\002\360\000\000n\002v\002\360\000\000v\002|\002\360\000\000|\002}\002\360\000\000}\002H\003\360\000\000H\003S\003\360\000\000S\003[\003\360\000\000[\003a\003\360\000\000a\003b\003\360\000\000b\003c\003\330\004\025\220Q\220o\240Q\330\004\013\210;\220a\200A\330\010\020\220\004\220A\330\010#\2401\330\010\014\210N\230%\230q\330\014\033\2305\240\014\250A\250[\270\001\270\021\330\014\017\210z\230\021\230.\250\001\330\020\024\220H\230A\330\024,\250G\2601\260A\340\020(\250\007\250q\260\001\330\010\017\210q\200A\360\016\000\t\021\220\004\220A\340\010\033\2302\230\\\250\025\250k\270\021\270+\300Q\300a\330\034 \240\016\250e""\260;\270e\3001\330\010#\2402\240S\250\005\250\\\270\021\270\"\270A\270Q\330$(\250\005\250U\260!\360\006\000\t\020\210t\2201\220A\330\010\027\220q\330\010#\2404\320'B\300!\330\010\013\2105\220\004\220D\230\n\240!\2404\240q\250\004\250A\330\014\020\220\003\2207\230)\2401\240A\330\020\023\2204\220z\240\021\240%\240q\330\024\025\340\020\021\330\024 \240\001\320!9\270\021\270&\300\001\330\027\030\330\024\032\320\032G\300q\330\030\033\2301\230A\330\030\034\230E\240\021\240!\330\024\032\230)\2401\240A\340\010\013\320\013\036\230g\240Q\330\020\024\220J\230a\230u\240O\2601\330\014'\240u\250M\270\021\330\r \240\007\240q\330\020\024\220J\230a\230u\240O\2601\330\014'\240u\250M\270\031\300!\340\014'\240t\2504\250q\260\005\260Q\340\010\013\2103\210a\210~\230S\240\003\2401\240A\330\014\020\320\020!\240\021\240!\330\014\023\2204\220q\230\003\2301\230A\330\r\020\220\001\220\036\230t\320#<\270A\330\020\024\220C\220q\230\006\230c\240\024\240Z\250q\260\004\260A\260T\270\021\330\014\022\320\022A\300\021\330\020\023\2201\220A\330\020\024\220E\230\021\230!\330\014\022\220)\2301\230A\340\010\014\320\014\036\230b\240\010\250\001\330\010\014\320\014\034\230A\360\006\000\t\r\210L\230\t\240\021\330\014\021\220\033\230A\230[\250\001\250\033\260A\330\010\r\210U\220!\320\023#\2404\240q\360\006\000\t\r\210L\230\t\240\021\330\014\021\220\034\230Q\230k\250\021\320*<\270A\330\014\021\220\025\220a\220~\240Q\240n\260A\340\010\017\210t\2201\200A\330\010\020\220\004\220A\330\010#\2404\320'B\300!\360\006\000\t\020\210q\330\010\014\320\014\034\230A\330\014\025\220U\230-\240q\250\001\330\014\017\320\017\037\230w\240e\2501\330\024\036\230a\230x\240q\330\020\031\230\026\230w\240g\250Q\250a\330\021!\240\027\250\005\250Q\330\024\036\230a\230x\240q\330\020\031\230\026\230y\250\002\250'\260\021\260!\330\014\020\220\007\220q\230\001\330\010\014\210M\230\025\230a\330\014\024\220D\320\030.\250a\250q\330\014\020\220\007\220q\230\001\360\006\000\t\023\220$\220l\240\"\240A\330\010\013\210:\220Q\220k\240\021\330\014""\023\2205\230\010\240\005\240Q\330\014\017\210t\220:\230Q\230f\240A\330\020\027\220t\2301\230A\330\014\021\220\030\230\021\230$\230a\230v\240Q\340\014\020\220\003\220:\230Y\240a\240u\250A\330\020\025\220X\230Q\230j\250\007\250q\260\001\330\010\r\320\r\036\230a\200A\360\016\000\t\021\220\004\220A\330\010\013\2104\210u\220A\330\014\020\320\020 \240\001\330\010\016\210e\2208\2307\240!\330\010\013\2104\210z\230\021\230%\230q\330\014\022\220$\220a\220q\330\010\013\320\013\036\230g\240U\250!\330\020\032\230!\2305\240\017\250q\330\014\024\220E\230\035\240a\330\014\017\210s\220!\2205\230\003\2301\330\020\027\220\177\240a\240s\250!\2504\250v\260Q\340\020\027\320\027)\250\021\250%\250}\270A\270Q\330*0\260\001\330*2\260$\260a\330\r \240\007\240u\250A\330\020\032\230!\2305\240\017\250q\330\014\017\210s\220!\2205\230\003\2301\330\020\027\220\177\240a\240s\250!\2501\340\020\027\320\027)\250\021\250%\250}\270A\270Q\330*1\260\024\260Q\340\014\023\2203\220a\220v\230S\240\001\240\025\240c\250\027\260\001\200A\340\010\020\220\004\220A\330\010\013\2104\210w\220a\220w\230a\330\014\021\220\030\230\021\330\014\021\320\021!\240\021\360\006\000\r\022\220\037\240\013\2501\330\014\021\220\036\230{\250!\330\014\021\220\033\230K\240q\330\014\021\320\021\"\240!\360\006\000\r\022\220\030\230\037\250\001\250\024\250Q\360\006\000\r\021\220\005\220V\2301\230E\240\025\240d\250!\2501\330\020\027\320\0270\260\001\260\024\260Y\270a\330\020\035\230T\240\021\240!\330\020\023\2204\220q\320\030(\250\003\2501\330\024\030\230\001\320\031+\320+H\310\001\310\021\330\020\025\220\\\240\021\240.\260\001\330\014\021\220\025\220a\320\027(\250\004\250A\360\006\000\r\021\220\005\220V\2301\230E\240\025\240d\250!\2501\330\020\027\320\0273\2601\260D\270\t\300\021\330\020\035\230T\240\021\240!\330\020\025\220[\240\001\240\036\250q\330\014\021\220\025\220a\320\027'\240t\2501\360\006\000\r\022\220\025\220a\320\027)\250\033\260A\330\014\020\220\005\220V\2301\230E\240\025\240d\250!\2501\330\020\027\320\0271\260\021\260$\260i""\270q\330\020\036\230d\240!\2401\330\020\025\220U\230!\230?\250!\250?\270$\270a\270q\330\020\025\220X\230Q\230o\250Q\330\014\021\220\025\220a\320\027)\250\024\250Q\330\010\017\210q\200A\330\010\014\210A\330\014\023\2206\230\021\330\014\023\2206\230\021\330\014\023\2206\230\021\330\014\023\2207\230!\330\014\023\2207\230!\330\014\023\2208\2301\330\014\023\2207\230!\330\014\023\2207\230!\330\014\023\2205\230\001\200A\360\010\000\t\021\220\004\220A\330\010\020\220\005\220[\240\001\240\033\250A\250Q\330\010\013\2106\220\023\220A\330\014\024\220E\230\033\240A\240[\260\001\260\021\330\010\017\210q\200A\360\010\000\t\021\220\004\220A\330\010\014\210L\320\030(\250\013\2606\270\021\330\014\021\220\034\230Q\230k\250\021\320*<\270A\330\014\021\220\025\220a\220~\240Q\240n\260A\330\010\r\320\r\036\230a\200A\360\010\000\t\021\220\004\220A\330\010\026\220a\340\010\014\210G\2201\330\014\017\210t\2203\220e\2301\330\020\030\230\006\230a\230q\330\020\023\2204\320\027/\250q\260\005\260Q\330\024\031\230\033\240A\240T\250\021\250+\260V\2701\270A\330\024\"\240!\330\021\025\220S\230\005\230Q\330\020\025\220\\\240\021\240$\240a\320'9\270\026\270q\300\001\330\020\025\220U\230!\230>\250\021\250'\260\026\260q\270\001\340\010\013\2101\330\014\031\230\021\330\014\017\210t\320\023$\240A\240T\250\021\250!\330\020\035\230Q\330\014\017\210s\220!\2206\230\022\2301\330\020\024\220C\220~\240Y\250a\250u\260A\330\024\031\230\021\330\024\027\220r\230\022\2303\230a\230q\330\030 \240\004\240A\240Q\330\030\033\2304\320\0377\260q\270\014\300A\330\034!\240\033\250A\250[\270\001\270\033\300A\330\034*\250!\340\010\013\2105\220\003\2201\330\014\017\210q\330\020\025\220U\230!\320\033+\2504\250q\330\014\021\320\021\"\240!\200A\360\014\000\t\021\220\004\220A\340\010\021\320\021&\240a\240t\2501\330\010\014\210C\210}\230I\240Q\240e\2501\330\014\024\220D\320\030.\250a\250q\330\014\024\220E\230\033\240A\240Z\250q\260\001\330\014\017\210v\220V\320\0332\260#\260V\2706\300\021\330\020)\250\021\250(\260#\260Q\330\021\027""\220v\320\0357\260s\270&\300\006\300a\330\020,\250A\250X\260S\270\001\340\010\023\320\023#\2401\240A\330\010\034\230A\230Q\330\010\017\210q\200A\360\010\000\t\021\220\004\220A\330\010\013\320\013\036\230g\240Q\330\014\020\220\n\230!\2305\240\017\250q\330\014\023\2205\230\r\240V\2501\340\014\023\2205\230\r\240U\250!\200A\360\010\000\t\021\220\004\220A\330\010\016\210k\230\021\330\010\014\210M\230\025\230a\330\014\017\210q\220\r\230T\320!7\260q\270\001\330\010\017\210q\200A\360\n\000\t\021\220\004\220A\330\010\016\210k\230\021\330\010\014\210N\230%\230q\330\014\017\210q\220\016\230e\240<\250q\260\013\2701\270A\330\010\017\210q\200\001\360\004\000A\002B\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0336\260b\270\001\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021#\2402\240T\250\031\260+\270T\300\026\300q\310\t\320Q\\\320\\`\320`f\320fg\320gp\320p{\320{~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002O\002\360\000\000O\002Z\002\360\000\000Z\002_\002\360\000\000_\002e\002\360\000\000e\002f\002\360\000\000f\002o\002\360\000\000o\002}\002\360\000\000}\002~\002\360\000\000~\002J\003\360\000\000J\003K\003\360\000\000K\003Z\003\360\000\000Z\003b\003\360\000\000b\003l\003\360\000\000l\003r\003\360\000\000r\003s\003\360\000\000s\003t\003\330\004\025\220Q\320\026+\2501\330\004\013\2101\200A\330\010\020\220\004\220H\230K\240q\250\013\2601\260A\330\010\013\2106\220\027\320\0305\260Q\330\014\024\220A\330\r\023\2207\320\0324\260A\330\014\024\220A\340\010\013\210:\220Q\220g\230Q\330\013\022\220!\330\r\023\2207\230!\330\014\022\220)\2301\330\020\021\330\024 \240\005\240[\260\004\260A\260V\2701\330\010\017\210q\200A\340\010\014\210J\220m\2406\250\021\330\010\014\210M\230\024\230Q""\330\010\014\210J\220i\230q\240\004\240A\360\006\000\t\r\210O\2309\240F\250!\360\006\000\t\r\320\014\036\230b\240\010\250\001\330\010\014\210O\2301\200A\330\010\017\320\017%\240Q\240d\250&\260\001\260\021\200\001\360\004\000A\002Y\002\360\000\000Y\002Z\002\360.\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210[\230\001\230\021\330\004\022\220)\2306\240\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\016\210a\330\004\021\220\031\230\"\230F\240(\250\"\250D\260\006\260h\270b\300\004\300L\320P[\320[h\320hv\360\000\000w\001D\002\360\000\000D\002Q\002\360\000\000Q\002R\002\360\000\000R\002^\002\360\000\000^\002_\002\360\000\000_\002n\002\360\000\000n\002o\002\360\000\000o\002p\002\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340@A\360&\000\005\014\210;\220a\220q\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3005\310\001\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QV\320V\\\320\\]\320]f\320fs\320st\360\000\000u\001A\002\360\000\000A\002B\002\360\000\000B\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002c\002\360\000\000c\002i\002\360\000\000i\002j\002\360\000\000j\002k\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340@A\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250q\330\004\023\320\023$\240A\240X\250Q\330\004\021\320\021\"\240!\2408\2501\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fs\320st\360\000\000u\001A\002\360\000\000A\002B\002\360\000\000B""\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002h\002\360\000\000h\002n\002\360\000\000n\002o\002\360\000\000o\002z\002\360\000\000z\002E\003\360\000\000E\003O\003\360\000\000O\003U\003\360\000\000U\003V\003\360\000\000V\003W\003\330\004\025\220Q\220l\240!\330\004\013\210?\230!\200\001\340$<\270A\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300m\320S[\320[\\\320\\h\320hi\320ix\360\000\000y\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002R\002\360\000\000R\002S\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200A\360\n\000\t\017\210d\220(\230(\240%\240q\330\010\013\2104\210z\230\021\230%\230q\330\014\022\220$\220a\220q\330\010\017\210q\200A\330\010\017\210q\200A\330\010\017\210q\220\007\220q\230\001\200A\330\010\017\210t\2208\2301\230A\200A\360\n\000\t\020\210t\2208\2305\240\001\240\021\200A\360\n\000\t\020\210t\2208\2305\240\005\240Q\200A\360\n\000\t\020\210t\2208\2305\240\001\240\037\260\005\260Q\200A\330\010\017\210u\220A\220S\230\001\200A\330\010\017\210u\220B\220d\230!\200A\330\010\017\210w\220a\220t\2308\2401\200\001\340A[\320[z\360\000\000{\001_\002\360\000\000_\002\177\002\360\000\000\177\002b\003\360\000\000b\003G\004\360\000\000G\004h\004\360\000\000h\004i\004\3604\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\r\320=O\320Of\320fy\360\000\000z\001P\002\360\000\000P\002h\002\360\000\000h\002|\002\360\000\000|\002}\002\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gt\360\000\000u\001G\002\360""\000\000G\002^\002\360\000\000^\002q\002\360\000\000q\002G\003\360\000\000G\003_\003\360\000\000_\003s\003\360\000\000s\003J\004\360\000\000J\004K\004\360\000\000K\004W\004\360\000\000W\004X\004\360\000\000X\004g\004\360\000\000g\004r\004\360\000\000r\004y\004\360\000\000y\004\177\004\360\000\000\177\004@\005\360\000\000@\005A\005\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340BC\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300E\310\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2605\270\006\270a\270y\310\013\320SX\320X^\320^_\320_h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002l\002\360\000\000l\002m\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340BC\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310+\320UX\320X^\320^_\320_h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002l\002\360\000\000l\002m\002\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340*B\300!\360(\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\026\220r\230\026\230x\240r\250\024\250V\2608\2702\270T\300\034\310]\320Zc\320cd\320dp\320pq\360\000\000r\001A\002\360\000\000A\002B\002\360\000\000B\002C\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340*B""\300!\360(\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\026\220r\230\026\230x\240r\250\024\250V\2608\2702\270T\300\034\310]\320Zd\320de\320eq\320qr\360\000\000s\001B\002\360\000\000B\002C\002\360\000\000C\002D\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340+C\3001\360(\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\027\230\002\230&\240\010\250\002\250$\250f\260H\270B\270d\300,\310m\320[c\320cd\320dp\320pq\360\000\000r\001A\002\360\000\000A\002B\002\360\000\000B\002C\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340+C\320C[\320[\\\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\027\230\002\230&\240\010\250\002\250$\250f\260H\270B\270d\300,\310m\320[h\320hq\320qr\320r~\320~\177\360\000\000@\002O\002\360\000\000O\002P\002\360\000\000P\002Q\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340CD\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320iv\320vw\360\000\000x\001D\002\360\000\000D\002E\002\360\000\000E\002T\002\360\000\000T\002_\002\360\000\000_\002f\002\360\000\000f\002l\002\360\000\000l\002m\002\360\000\000m\002n\002\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\340CZ\320Zq\320qr\360,\000\005\014\210;\220a\220q\330\004\016\210k\230\021\230!\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3007\310!\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250l\270,\300a\330\004\016\320\016\037\230q""\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300{\320RY\320Y_\320_`\320`i\320iu\360\000\000v\001B\002\360\000\000B\002K\002\360\000\000K\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002h\002\360\000\000h\002s\002\360\000\000s\002z\002\360\000\000z\002@\003\360\000\000@\003A\003\360\000\000A\003B\003\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\360\004\000C\002D\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0338\270\002\270!\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021%\240R\240t\2509\260K\270t\3006\310\021\310)\320S^\320^b\320bh\320hi\320ir\320r}\360\000\000~\001A\002\360\000\000A\002G\002\360\000\000G\002H\002\360\000\000H\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002a\002\360\000\000a\002g\002\360\000\000g\002h\002\360\000\000h\002q\002\360\000\000q\002\177\002\360\000\000\177\002@\003\360\000\000@\003L\003\360\000\000L\003M\003\360\000\000M\003\\\003\360\000\000\\\003d\003\360\000\000d\003n\003\360\000\000n\003t\003\360\000\000t\003u\003\360\000\000u\003v\003\330\004\025\220Q\320\026-\250Q\330\004\013\2101\200\001\340,D\320D\\\320\\]\3602\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\024\220A\330\004\022\220!\330\004\021\220\030\230\022\2306\240\030\250\022\2504\250v\260X\270R\270t\300<\310}\320\\i\320ix\320xy\360\000\000z\001F\002\360\000\000F\002G\002\360\000\000G\002V\002\360\000\000V\002W\002\360\000\000W\002a\002\360\000\000a\002b\002\360\000\000b\002r\002\360\000\000r\002s\002\360\000\000s\002t\002\330\004\025\220Q\220k\240\021\330\004\013\210:\320\025%\240Q\200\001\340DE\360(\000\005\r\210K\220q\230\001\330\004\014\210K""\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300E\310\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260U\270&\300\001\300\031\310+\320UZ\320Z`\320`a\320aj\320jw\320wx\360\000\000y\001E\002\360\000\000E\002F\002\360\000\000F\002U\002\360\000\000U\002`\002\360\000\000`\002g\002\360\000\000g\002m\002\360\000\000m\002n\002\360\000\000n\002o\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\360\004\000D\002E\002\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\021\220\021\330\004\021\220\036\230r\240\026\240x\250r\260\024\260V\2708\3002\300T\310\034\320Ua\320al\320ly\360\000\000z\001H\002\360\000\000H\002I\002\360\000\000I\002U\002\360\000\000U\002V\002\360\000\000V\002e\002\360\000\000e\002f\002\360\000\000f\002g\002\330\004\025\220Q\320\026'\240q\330\004\013\2101\200\001\360\004\000D\002E\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0339\270\022\2701\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021&\240b\250\004\250I\260[\300\004\300F\310!\3109\320T_\320_c\320ci\320ij\320js\320s~\360\000\000\177\001B\002\360\000\000B\002H\002\360\000\000H\002I\002\360\000\000I\002R\002\360\000\000R\002]\002\360\000\000]\002b\002\360\000\000b\002h\002\360\000\000h\002i\002\360\000\000i\002r\002\360\000\000r\002@\003\360\000\000@\003A\003\360\000\000A\003M\003\360\000\000M\003N\003""\360\000\000N\003]\003\360\000\000]\003e\003\360\000\000e\003o\003\360\000\000o\003u\003\360\000\000u\003v\003\360\000\000v\003w\003\330\004\025\220Q\320\026.\250a\330\004\013\2101\200\001\340,E\300Q\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\016\210a\330\004\021\220\030\230\022\2306\240\030\250\022\2504\250v\260X\270R\270t\300<\310|\320[g\320gh\320ht\320tu\360\000\000v\001E\002\360\000\000E\002F\002\360\000\000F\002P\002\360\000\000P\002Q\002\360\000\000Q\002R\002\330\004\025\220Q\220k\240\021\330\004\013\210:\220Q\200\001\360\004\000E\002F\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033:\270\"\270A\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021'\240r\250\024\250Y\260k\300\024\300V\3101\310I\320U`\320`d\320dj\320jk\320kt\320t\177\360\000\000@\002C\002\360\000\000C\002I\002\360\000\000I\002J\002\360\000\000J\002S\002\360\000\000S\002^\002\360\000\000^\002c\002\360\000\000c\002i\002\360\000\000i\002j\002\360\000\000j\002s\002\360\000\000s\002A\003\360\000\000A\003B\003\360\000\000B\003N\003\360\000\000N\003O\003\360\000\000O\003^\003\360\000\000^\003f\003\360\000\000f\003p\003\360\000\000p\003v\003\360\000\000v\003w\003\360\000\000w\003x\003\330\004\025\220Q\320\026/\250q\330\004\013\2101\200\001\340E`\320`a\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\r\210]\230!\2306\240\021\330\004\016\210a\330\004\021\220\027\230\002\230&\240\010\250\002\250$\250f\260H\270B\270d\300,\310k\320Yh\320hr\320rs\320s\177\360\000\000@\002A\002\360\000\000A\002P\002\360\000\000P\002Q\002\360\000\000Q\002R\002\330\004\025\220Q\220j\240""\001\330\004\013\2101\200\001\340.F\320F]\320]t\320tu\3604\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\027\220q\330\004\030\230\001\330\004\027\220q\330\004\021\220\032\2302\230V\2408\2502\250T\260\026\260x\270r\300\024\300\\\320Q^\320^h\320hr\320r{\320{|\360\000\000}\001I\002\360\000\000I\002J\002\360\000\000J\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002m\002\360\000\000m\002n\002\360\000\000n\002B\003\360\000\000B\003C\003\360\000\000C\003D\003\330\004\025\220Q\220m\2401\330\004\013\320\013\036\320\0362\260!\200\001\340.F\300a\360(\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\032\2302\230V\2408\2502\250T\260\026\260x\270r\300\024\300\\\320Q^\320^f\320fg\320gs\320st\360\000\000u\001D\002\360\000\000D\002E\002\360\000\000E\002F\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340/G\320GZ\320Zr\360\000\000s\001F\002\360\000\000F\002`\002\360\000\000`\002a\002\3608\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\024\220A\330\004\022\220!\330\004\021\220\033\230B\230f\240H\250B\250d\260&\270\010\300\002\300$\300l\320R_\320_l\320ly\360\000\000z\001G\002\360\000\000G\002V\002\360\000\000V\002e\002\360\000\000e\002f\002\360\000\000f\002r\002\360\000\000r\002s\002\360\000\000s\002B\003\360\000\000B\003C\003\360\000\000C\003M\003\360\000\000M\003N\003\360\000\000N\003^\003\360\000\000^\003_\003\360\000\000_\003`\003\330\004\025\220Q\220n\240A\330\004\013\210:\320\025%\240Q\200\001\340GH\360(\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\021\330\004\016\210a\330\004\021\220\027\230\002\230&\240\010\250\002\250$\250f\260H\270B\270d\300,\310m\320[h\320hi\320iu\320uv\360\000\000w\001F\002\360\000\000F\002G\002\360\000\000G\002H\002\330\004\025\220Q\220j\240\001""\330\004\013\2101\200\001\340GH\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\r\210]\230!\2306\240\021\330\004\023\2201\330\004\021\220\021\330\004\021\220\031\230\"\230F\240(\250\"\250D\260\006\260h\270b\300\004\300L\320P[\320[h\320hi\320iu\320uv\360\000\000w\001F\002\360\000\000F\002G\002\360\000\000G\002V\002\360\000\000V\002W\002\360\000\000W\002X\002\330\004\025\220Q\220l\240!\330\004\013\210?\230!\200\001\360\004\000H\002I\002\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\021\220\021\330\004\021\320\021#\2402\240V\2508\2602\260T\270\026\270x\300r\310\024\310\\\320Ye\320ep\320p}\360\000\000~\001L\002\360\000\000L\002M\002\360\000\000M\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002i\002\360\000\000i\002j\002\360\000\000j\002k\002\330\004\025\220Q\320\026+\2501\330\004\013\2101\200\001\340Hb\360\000\000c\001B\002\360\000\000B\002f\002\360\000\000f\002F\003\360\000\000F\003i\003\360\000\000i\003N\004\360\000\000N\004o\004\360\000\000o\004p\004\3606\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\r\210]\230!\2306\240\021\330\004\016\210a\330\004\021\220\032\2302\230V\2408\2502\250T\260\026\260x\270r\300\024\300\\\320Q\\\320\\i\320i{\360\000\000|\001S\002\360\000\000S\002f\002\360\000\000f\002|\002\360\000\000|\002T\003\360\000\000T\003h\003\360\000\000h\003\177\003\360\000\000\177\003@\004\360\000\000@\004L\004\360\000\000L\004M\004\360\000\000M\004\\\004\360\000\000\\\004]\004\360\000\000]\004^\004\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340IJ\360*\000\005\r\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q""\330\004\r\210]\230!\2307\240!\330\004\016\210a\330\004\021\220\030\230\022\2306\240\030\250\022\2504\250v\260X\270R\270t\300=\320P]\320]j\320jk\320kw\320wx\360\000\000y\001H\002\360\000\000H\002I\002\360\000\000I\002J\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340IJ\360(\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\r\210]\230!\2306\240\021\330\004\016\210a\330\004\021\220\033\230B\230f\240H\250B\250d\260&\270\010\300\002\300$\300l\320R]\320]j\320jk\320kw\320wx\360\000\000y\001H\002\360\000\000H\002I\002\360\000\000I\002J\002\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340JK\360(\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\r\210]\230!\2306\240\021\330\004\016\210a\330\004\021\220\034\230R\230v\240X\250R\250t\2606\270\030\300\022\3004\300|\320S^\320^k\320kl\320lx\320xy\360\000\000z\001I\002\360\000\000I\002J\002\360\000\000J\002K\002\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360\004\000J\002K\002\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\021\220\021\330\004\021\320\021%\240R\240v\250X\260R\260t\2706\300\030\310\022\3104\310|\320[g\320gr\320r\177\360\000\000@\002N\002\360\000\000N\002O\002\360\000\000O\002[\002\360\000\000[\002\\\002\360\000\000\\\002k\002\360\000\000k\002l\002\360\000\000l\002m\002\330\004\025\220Q\320\026-\250Q\330\004\013\2101\200\001\340Ja\320ax\320xy\360.\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\016\210k\230\021\230!\330\004\023\2209\230G\2401\330\004\r\210]\230!\2306\240\021\330\004\016\210a\330\004\021\220\030\230\022\2306\240\030\250\022\2504\250v\260X\270R\270t\300<\310\177\320^j\320jv\320v""\177\360\000\000@\002A\002\360\000\000A\002M\002\360\000\000M\002N\002\360\000\000N\002]\002\360\000\000]\002^\002\360\000\000^\002_\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340KL\360*\000\005\r\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2307\240!\330\004\016\210a\330\004\021\220\032\2302\230V\2408\2502\250T\260\026\260x\270r\300\024\300]\320R_\320_l\320lm\320my\320yz\360\000\000{\001J\002\360\000\000J\002K\002\360\000\000K\002L\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\360\004\000K\002L\002\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\021\220\021\330\004\021\320\021&\240b\250\006\250h\260b\270\004\270F\300(\310\"\310D\320P\\\320\\h\320hs\360\000\000t\001A\002\360\000\000A\002O\002\360\000\000O\002P\002\360\000\000P\002\\\002\360\000\000\\\002]\002\360\000\000]\002l\002\360\000\000l\002m\002\360\000\000m\002n\002\330\004\025\220Q\320\026.\250a\330\004\013\2101\200\001\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300E\310\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260%\260v\270Q\270i\300{\320RW\320W]\320]^\320^g\320gh\320ht\320tu\360\000\000v\001E\002\360\000\000E\002P\002\360\000\000P\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002_\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300E\310\021\330\004\r\210U\220'\230\022\2307""\240\"\240A\330\004\017\210w\220e\320\033,\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2605\270\006\270a\270y\310\013\320SX\320X^\320^_\320_h\320hi\320iu\320uv\360\000\000w\001F\002\360\000\000F\002Q\002\360\000\000Q\002X\002\360\000\000X\002^\002\360\000\000^\002_\002\360\000\000_\002`\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\360*\000\005\r\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2307\240!\330\004\016\210a\330\004\021\220\030\230\022\2306\240\030\250\022\2504\250v\260X\270R\270t\300=\320P]\320]^\320^j\320jk\320kz\320z{\320{|\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\360*\000\005\r\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2307\240!\330\004\016\210a\330\004\021\220\027\230\002\230&\240\010\250\002\250$\250f\260H\270B\270d\300-\310}\320\\]\320]i\320ij\320jy\320yz\320z{\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360\004\000L\002M\002\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\021\220\021\330\004\021\320\021'\240r\250\026\250x\260r\270\024\270V\3008\3102\310T\320Q]\320]i\320it\360\000\000u\001B\002\360\000\000B\002P\002\360\000\000P\002Q\002\360\000\000Q\002]\002\360\000\000]\002^\002\360\000\000^\002m\002\360\000\000m\002n\002\360\000\000n\002o\002\330\004\025\220Q\320\026/\250q\330\004\013\2101\200N\220!\360\016\000\t\014\2101\330\014\020\320\020!\240\021\240!\330\010\014\320\014\034\230A\330\010\017\210t\2201\200\001\360\014\000\005\022\320\021-\250Q\320.@\300\001\320AQ\320QV\320VW\320WX\330\004\025\220Q\320\0265\260Q\340\004\013\2109\220A\220T\230\021\330\004""\013\2104\210q\220\003\2201\220J\230f\240A\330\004\024\220C\220q\230\004\320\034.\250d\260&\270\002\270'\300\024\300Q\340\004\005\330\010\020\220\001\330\010\030\230\t\240\021\240$\240a\330\010\020\220\004\220A\330\010\020\220\t\230\021\230$\230a\330\010\031\230\021\330\010\021\220\021\320\004\035\230Q\360\010\000\t\021\220\004\220A\330\010\025\220[\240\003\2401\330\010\022\220'\230\021\230!\330\010\014\210G\2209\230J\240f\250A\330\014\017\210t\320\023+\2501\250G\2601\330\020\025\220[\240\001\240\026\240q\250\013\2601\330\010\r\320\r\036\230a\330\010\r\210U\220!\320\023#\2404\240q\200\001\360\n\000\005\026\220Q\320\026/\320/B\300!\3001\300A\330\004\r\210Q\330\004\010\210\005\210V\2201\220E\230\021\330\010\016\210g\220Q\220f\230A\230U\240'\250\021\250!\330\004\025\220Q\320\026.\320.@\300\001\300\021\330\004\013\2101\200\001\360\014\000\005\022\320\021*\250!\320+=\270Q\320>N\310e\320ST\320TU\330\004\025\220Q\320\0262\260!\340\004\013\2109\220A\220T\230\021\330\004\013\2104\210q\220\003\2201\220G\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\210t\2208\2301\230H\240A\330\t\021\220\023\220A\330\010\017\210q\340\004\005\330\010\020\220\001\330\010\030\230\013\2401\240D\250\010\260\001\200\001\360\n\000\005\026\220Q\320\026.\320.@\300\001\300\027\310\001\310\021\330\004\020\220\001\330\004\010\210\005\210V\2201\220E\230\021\330\010\021\220\027\230\001\230\026\230q\240\005\240W\250A\250Q\330\004\025\220Q\320\026-\320->\270a\270q\330\004\013\2101\200\001\340\004\022\220.\240\001\330\004\025\220Q\320\026'\240q\200\001\340\004\034\320\034-\250Q\250a\330\004\020\320\020%\240Q\240a\330\004\013\2101\200\001\340\004\034\320\034-\250Q\250a\330\004\022\320\022'\240q\250\004\250A\330\004\025\220Q\320\026.\250a\200\001\340(@\320@S\320Sk\320k~\360\000\000\177\001Y\002\360\000\000Y\002Z\002\3608\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r""\260\035\270m\310=\320Xe\320et\320tu\330\004\016\320\016\037\230q\240\010\250\001\330\004\024\320\024%\240Q\240h\250a\330\004\022\320\022#\2401\240H\250A\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310-\320Wd\320dq\320q~\360\000\000\177\001N\002\360\000\000N\002]\002\360\000\000]\002^\002\360\000\000^\002j\002\360\000\000j\002k\002\360\000\000k\002z\002\360\000\000z\002E\003\360\000\000E\003L\003\360\000\000L\003R\003\360\000\000R\003S\003\360\000\000S\003^\003\360\000\000^\003i\003\360\000\000i\003v\003\360\000\000v\003|\003\360\000\000|\003}\003\360\000\000}\003H\004\360\000\000H\004S\004\360\000\000S\004^\004\360\000\000^\004d\004\360\000\000d\004e\004\360\000\000e\004f\004\330\004\025\220Q\220n\240A\330\004\013\210:\320\025%\240Q\200\001\340$<\320Y\320YZ\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250_\270A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320ds\320s}\320}~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002[\002\360\000\000[\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340YZ\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r""\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cn\320ns\320sy\320yz\360\000\000{\001D\002\360\000\000D\002Q\002\360\000\000Q\002R\002\360\000\000R\002^\002\360\000\000^\002_\002\360\000\000_\002n\002\360\000\000n\002y\002\360\000\000y\002@\003\360\000\000@\003F\003\360\000\000F\003G\003\360\000\000G\003H\003\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340Z[\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002R\002\360\000\000R\002S\002\360\000\000S\002_\002\360\000\000_\002`\002\360\000\000`\002o\002\360\000\000o\002z\002\360\000\000z\002A\003\360\000\000A\003G\003\360\000\000G\003H\003\360\000\000H\003I\003\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340\004\022\220,\230a\330\004\025\220Q\220o\240Q\200\001\340`a\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\025\240a\330\004\016\210a\330\004\021\220\026\220r\230\026\230x\240r\250\024\250V\2608\2702\270T\300\034\310[\320Xe\320er\320rs\320s\177\360\000\000@\002A\002\360\000\000A\002P\002\360\000\000P\002Q\002\360\000\000Q\002R\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340%>\270a\360,\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330""\004\017\210w\220e\320\033,\250B\250l\270!\330\004\016\320\016\037\230q\240\010\250\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300|\320S_\320_`\320`l\320lm\320m|\360\000\000}\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002V\002\360\000\000V\002a\002\360\000\000a\002l\002\360\000\000l\002s\002\360\000\000s\002y\002\360\000\000y\002z\002\360\000\000z\002{\002\330\004\025\220Q\220k\240\021\330\004\013\210:\220Q\200\001\340ab\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\025\240a\330\004\016\210a\330\004\021\220\027\230\002\230&\240\010\250\002\250$\250f\260H\270B\270d\300,\310k\320Yf\320fs\320st\360\000\000u\001A\002\360\000\000A\002B\002\360\000\000B\002Q\002\360\000\000Q\002R\002\360\000\000R\002S\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360(\000\005\014\210;\220a\220q\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3006\310\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QW\320W]\320]^\320^g\320gh\320ht\320tu\360\000\000v\001E\002\360\000\000E\002P\002\360\000\000P\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002_\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210[\230\001\230\021\330\004\022\220)\2306\240\021\330\004\r\210]\230!\2306\240\021\330\004\016\210a\330\004\021\220\027\230\002\230&\240\010\250\002\250$\250f\260H\270B\270d\300,\310n\320\\]\320]i\320ij\320jy\320yz\320z{\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340\004\022\320\022&\240a\240q\330\004\025\220Q""\320\026-\250Q\200\001\360(\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\r\210]\230!\2306\240\021\330\004\016\210a\330\004\021\220\034\230R\230v\240X\250R\250t\2606\270\030\300\022\3004\300|\320S^\320^_\320_k\320kl\320l{\320{|\320|}\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\340~\177\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210[\230\001\230\021\330\004\022\220)\2306\240\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\016\210a\330\004\021\220\027\230\002\230&\240\010\250\002\250$\250f\260H\270B\270d\300,\310k\320Yf\320ft\360\000\000u\001B\002\360\000\000B\002C\002\360\000\000C\002O\002\360\000\000O\002P\002\360\000\000P\002_\002\360\000\000_\002`\002\360\000\000`\002a\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210[\230\001\230\021\330\004\022\220)\2306\240\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\016\210a\330\004\021\220\026\220r\230\026\230x\240r\250\024\250V\2608\2702\270T\300\034\310[\320Xe\320es\320st\360\000\000u\001A\002\360\000\000A\002B\002\360\000\000B\002Q\002\360\000\000Q\002R\002\360\000\000R\002S\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\025\240a\330\004\016\210a\330\004\021\220\032\2302\230V\2408\2502\250T\260\026\260x\270r\300\024\300\\\320Q\\\320\\i\320ij\320jv\320vw\360\000\000x\001G\002\360\000\000G\002H\002\360\000\000H\002I\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001""\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\025\240a\330\004\016\210a\330\004\021\220\034\230R\230v\240X\250R\250t\2606\270\030\300\022\3004\300|\320S^\320^k\320kl\320lx\320xy\360\000\000z\001I\002\360\000\000I\002J\002\360\000\000J\002K\002\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\021\220\021\330\004\021\320\021!\240\022\2406\250\030\260\022\2604\260v\270X\300R\300t\310<\320WX\320Xd\320de\320et\320tu\320uv\330\004\025\220Q\320\026)\250\021\330\004\013\2101\200\001\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\021\220\021\330\004\024\220A\330\004\021\220\035\230b\240\006\240h\250b\260\004\260F\270(\300\"\300D\310\014\320TU\320Ua\320ab\320bq\320qr\320r\177\360\000\000@\002A\002\360\000\000A\002B\002\330\004\025\220Q\320\026&\240a\330\004\013\210=\230\001\200\001\340./\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\r\210Q\330\004\r\210Q\330\004\021\220\032\2302\230V\2408\2502\250T\260\026\260x\270r\300\024\300\\\320Q^\320^_\320_k\320kl\320l{\320{|\360\000\000}\001F\002\360\000\000F\002G\002\360\000\000G\002H\002\330\004\025\220Q\220m\2401\330\004\013\2109\220A\200\001\340./\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\032\2302\230V\2408\2502\250T\260\026\260x\270r\300\024\300\\\320Q^\320^_\320_k\320kl\320l{\320{|\320|}\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\320\021!\240\022\2406\250\030\260\022\2604\260v\270X\300R\300t\310<\320WX\320Xd\320de\320et""\320tu\320uv\330\004\025\220Q\320\026)\250\021\330\004\013\2101\200\001\340,-\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\030\230\022\2306\240\030\250\022\2504\250v\260X\270R\270t\300<\310}\320\\]\320]i\320ij\320jy\320yz\320z{\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\030\230\022\2306\240\030\250\022\2504\250v\260X\270R\270t\300<\310q\320P\\\320\\]\320]l\320lm\320mn\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\022\220!\330\004\021\220\033\230B\230f\240H\250B\250d\260&\270\010\300\002\300$\300l\320RS\320S_\320_`\320`o\320op\320pz\320z{\320{|\330\004\025\220Q\220n\240A\330\004\013\210:\220Q\200\001\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\031\230\"\230F\240(\250\"\250D\260\006\260h\270b\300\004\300L\320PQ\320Q]\320]^\320^m\320mn\320no\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340-.\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\031\230\"\230F\240(\250\"\250D\260\006\260h\270b\300\004\300L\320P]\320]^\320^j\320jk\320kz\320z{\320{|\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340;<\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\320\021(\250\002\250&\260\010\270\002\270$\270f\300H\310B\310d\320R^\320^k\320kl\320lx\320xy\360\000\000z\001I\002\360\000\000I\002J\002\360\000\000J\002K\002\330\004\025\220Q\320\0260\260\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001""\330\004\016\210a\330\004\021\220\037\240\002\240&\250\010\260\002\260$\260f\270H\300B\300d\310,\320VW\320Wc\320cd\320ds\320st\320tu\330\004\025\220Q\320\026(\250\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\027\230\002\230&\240\010\250\002\250$\250f\260H\270B\270d\300,\310a\310|\320[\\\320\\k\320kl\320lm\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340+,\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\027\230\002\230&\240\010\250\002\250$\250f\260H\270B\270d\300,\310m\320[\\\320\\h\320hi\320ix\320xy\320yz\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\026\220r\230\026\230x\240r\250\024\250V\2608\2702\270T\300\034\310Q\310l\320Z[\320[j\320jk\320kl\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\036\230r\240\026\240x\250r\260\024\260V\2708\3002\300T\310\034\320UV\320Vb\320bc\320cr\320rs\320st\330\004\025\220Q\320\026'\240q\330\004\013\2101\200\001\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\021\220\021\330\004\021\320\021#\2402\240V\2508\2602\260T\270\026\270x\300r\310\024\310\\\320Ye\320ep\320p}\320}~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002[\002\360\000\000[\002\\\002\360\000\000\\\002]\002\330\004\025\220Q\320\026+\2501\330\004\013\2101\200\001\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;""\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\021\220\021\330\004\021\320\021!\240\022\2406\250\030\260\022\2604\260v\270X\300R\300t\310<\320Wc\320cn\320n{\320{|\360\000\000}\001I\002\360\000\000I\002J\002\360\000\000J\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002[\002\330\004\025\220Q\320\026)\250\021\330\004\013\2101\200\001\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\021\220\021\330\004\021\320\021$\240B\240f\250H\260B\260d\270&\300\010\310\002\310$\310l\320Zf\320fq\320q~\320~\177\360\000\000@\002L\002\360\000\000L\002M\002\360\000\000M\002\\\002\360\000\000\\\002]\002\360\000\000]\002^\002\330\004\025\220Q\320\026,\250A\330\004\013\2101\200\001\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\021\220\021\330\004\021\220\033\230B\230f\240H\250B\250d\260&\270\010\300\002\300$\300l\320R^\320^i\320iv\320vw\360\000\000x\001D\002\360\000\000D\002E\002\360\000\000E\002T\002\360\000\000T\002U\002\360\000\000U\002V\002\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\021\220\021\330\004\021\320\021\"\240\"\240F\250(\260\"\260D\270\006\270h\300b\310\004""\310L\320Xd\320do\320o|\320|}\360\000\000~\001J\002\360\000\000J\002K\002\360\000\000K\002Z\002\360\000\000Z\002[\002\360\000\000[\002\\\002\330\004\025\220Q\320\026*\250!\330\004\013\2101\200\001\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\021\220\021\330\004\021\320\021%\240R\240v\250X\260R\260t\2706\300\030\310\022\3104\310|\320[g\320gr\320r\177\360\000\000@\002A\002\360\000\000A\002M\002\360\000\000M\002N\002\360\000\000N\002]\002\360\000\000]\002^\002\360\000\000^\002_\002\330\004\025\220Q\320\026-\250Q\330\004\013\2101\200\001\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\016\210a\330\004\021\220\034\230R\230v\240X\250R\250t\2606\270\030\300\022\3004\300|\320S_\320_j\320jw\320wx\360\000\000y\001E\002\360\000\000E\002F\002\360\000\000F\002U\002\360\000\000U\002V\002\360\000\000V\002W\002\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\016\210a\330\004\021\220\027\230\002\230&\240\010\250\002\250$\250f\260H\270B\270d\300,\310l\320Ze\320er\320rs\320s\177\360\000\000@\002A\002\360\000\000A\002P\002\360\000\000P\002Q\002\360\000\000Q\002R\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020\220\t""\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\021\220\021\330\004\021\220\035\230b\240\006\240h\250b\260\004\260F\270(\300\"\300D\310\014\320T`\320`k\320kx\320xy\360\000\000z\001F\002\360\000\000F\002G\002\360\000\000G\002V\002\360\000\000V\002W\002\360\000\000W\002X\002\330\004\025\220Q\320\026&\240a\330\004\013\2101\200\001\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\021\220\021\330\004\021\320\021&\240b\250\006\250h\260b\270\004\270F\300(\310\"\310D\320P\\\320\\h\320hs\360\000\000t\001A\002\360\000\000A\002B\002\360\000\000B\002N\002\360\000\000N\002O\002\360\000\000O\002^\002\360\000\000^\002_\002\360\000\000_\002`\002\330\004\025\220Q\320\026.\250a\330\004\013\2101\200\001\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\021\220\021\330\004\021\220\037\240\002\240&\250\010\260\002\260$\260f\270H\300B\300d\310,\320Vb\320bm\320mz\320z{\360\000\000|\001H\002\360\000\000H\002I\002\360\000\000I\002X\002\360\000\000X\002Y\002\360\000\000Y\002Z\002\330\004\025\220Q\320\026(\250\001\330\004\013\2101\200\001\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\021\220\021\330\004\021\320\021(\250\002\250&\260\010\270\002\270$\270f\300H""\310B\310d\320R^\320^j\320ju\360\000\000v\001C\002\360\000\000C\002D\002\360\000\000D\002P\002\360\000\000P\002Q\002\360\000\000Q\002`\002\360\000\000`\002a\002\360\000\000a\002b\002\330\004\025\220Q\320\0260\260\001\330\004\013\2101\200\001\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\021\220\021\330\004\021\220\036\230r\240\026\240x\250r\260\024\260V\2708\3002\300T\310\034\320Ua\320al\320ly\320yz\360\000\000{\001G\002\360\000\000G\002H\002\360\000\000H\002W\002\360\000\000W\002X\002\360\000\000X\002Y\002\330\004\025\220Q\320\026'\240q\330\004\013\2101\200\001\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\021\220\021\330\004\021\320\021'\240r\250\026\250x\260r\270\024\270V\3008\3102\310T\320Q]\320]i\320it\360\000\000u\001B\002\360\000\000B\002C\002\360\000\000C\002O\002\360\000\000O\002P\002\360\000\000P\002_\002\360\000\000_\002`\002\360\000\000`\002a\002\330\004\025\220Q\320\026/\250q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320ij\320jv\320vw\360\000\000x\001G\002\360\000\000G\002R\002\360\000\000R\002Y\002\360\000\000Y\002_\002\360\000\000_\002`\002\360\000\000`\002a\002\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\340_`\360.\000""\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\030\320\030)\250\021\250(\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320it\320ty\320y\177\360\000\000@\002A\002\360\000\000A\002J\002\360\000\000J\002W\002\360\000\000W\002X\002\360\000\000X\002d\002\360\000\000d\002e\002\360\000\000e\002t\002\360\000\000t\002\177\002\360\000\000\177\002O\003\360\000\000O\003U\003\360\000\000U\003V\003\360\000\000V\003a\003\360\000\000a\003l\003\360\000\000l\003}\003\360\000\000}\003C\004\360\000\000C\004D\004\360\000\000D\004O\004\360\000\000O\004Z\004\360\000\000Z\004j\004\360\000\000j\004p\004\360\000\000p\004q\004\360\000\000q\004r\004\330\004\025\220Q\220o\240Q\330\004\013\320\013\036\320\0362\260!\200\001\340_`\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320it\320ty\320y\177\360\000\000@\002A\002\360\000\000A\002J\002\360\000\000J\002W\002\360\000\000W\002X\002\360\000\000X\002d\002\360\000\000d\002e\002\360\000\000e\002t\002\360\000\000t\002\177\002\360\000\000\177\002F\003\360\000\000F\003L\003\360\000\000L\003M\003\360\000\000M\003N\003\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\340^_\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330""\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310+\320UX\320X^\320^_\320_h\320hs\320sx\320x~\320~\177\360\000\000@\002I\002\360\000\000I\002V\002\360\000\000V\002W\002\360\000\000W\002c\002\360\000\000c\002d\002\360\000\000d\002s\002\360\000\000s\002~\002\360\000\000~\002E\003\360\000\000E\003K\003\360\000\000K\003L\003\360\000\000L\003M\003\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340[\\\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300{\320RU\320U[\320[\\\320\\e\320ep\320pu\320u{\320{|\360\000\000}\001F\002\360\000\000F\002S\002\360\000\000S\002T\002\360\000\000T\002`\002\360\000\000`\002a\002\360\000\000a\002p\002\360\000\000p\002{\002\360\000\000{\002B\003\360\000\000B\003H\003\360\000\000H\003I\003\360\000\000I\003J\003\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gr\320rw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002I\002\360\000\000I\002U\002\360\000\000U\002V\002\360\000\000V\002e\002\360\000\000e\002p\002\360\000\000p\002w\002\360\000""\000w\002}\002\360\000\000}\002~\002\360\000\000~\002\177\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320it\320ty\320y\177\360\000\000@\002A\002\360\000\000A\002J\002\360\000\000J\002K\002\360\000\000K\002W\002\360\000\000W\002X\002\360\000\000X\002g\002\360\000\000g\002r\002\360\000\000r\002y\002\360\000\000y\002\177\002\360\000\000\177\002@\003\360\000\000@\003A\003\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\340\\]\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fq\320qv\320v|\320|}\360\000\000~\001G\002\360\000\000G\002T\002\360\000\000T\002U\002\360\000\000U\002a\002\360\000\000a\002b\002\360\000\000b\002q\002\360\000\000q\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003J\003\360\000\000J\003K\003\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]e\320eo\320ou\320uv\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250!\330\004\016\320\016\037\230q\240\010\250\001\330""\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cn\320ns\320sy\320yz\360\000\000{\001D\002\360\000\000D\002O\002\360\000\000O\002U\002\360\000\000U\002[\002\360\000\000[\002\\\002\360\000\000\\\002e\002\360\000\000e\002f\002\360\000\000f\002r\002\360\000\000r\002s\002\360\000\000s\002B\003\360\000\000B\003M\003\360\000\000M\003T\003\360\000\000T\003Z\003\360\000\000Z\003[\003\360\000\000[\003\\\003\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340)*\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310=\320XY\320Ye\320ef\320fu\320u}\360\000\000~\001H\002\360\000\000H\002N\002\360\000\000N\002O\002\360\000\000O\002P\002\330\004\025\220Q\220o\240Q\330\004\026\220f\230J\240a\330\004\010\210\007\320\017\037\230q\330\010\027\220q\230\006\230a\330\004\013\2101\200\001\340)*\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310=\320XY\320Ye\320ef\320fu\360\000\000v\001A\002\360\000\000A\002H\002\360\000\000H\002N\002\360\000\000N\002O\002\360\000\000O\002P\002\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\340*+\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0331\260\022\2601\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\035\230b\240\004\240I\250[\270\004\270F\300!\3009\310M\320YZ\320Zf\320fg\320gv\360\000\000w\001B\002\360\000\000B\002I\002\360\000\000I\002O\002\360""\000\000O\002P\002\360\000\000P\002Q\002\330\004\025\220Q\320\026&\240a\330\004\013\2101\200\001\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0331\260\021\330\004\021\320\021\"\240!\2408\2501\330\004\024\320\024%\240Q\240h\250a\330\004\021\220\035\230b\240\004\240I\250[\270\004\270F\300!\3009\310A\310\\\320YZ\320Zi\320it\320t~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002i\002\360\000\000i\002o\002\360\000\000o\002p\002\360\000\000p\002q\002\330\004\025\220Q\320\026&\240a\330\004\013\210=\230\001\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300a\300|\320ST\320Tc\320cn\320nu\320u{\320{|\320|}\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340$%\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300m\320ST\320T`\320`a\320ap\320p{\360\000\000|\001C\002\360\000\000C\002I\002\360\000\000I\002J\002\360\000\000J\002K\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310Q\310l\320Z[\320[j\320ju\320u|\360\000\000}\001C\002\360\000\000C\002D\002\360\000\000D""\002E\002\330\004\025\220Q\320\026'\240q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0333\2601\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\037\240\002\240$\240i\250{\270$\270f\300A\300Y\310a\310|\320[\\\320\\k\320kv\320v}\360\000\000~\001D\002\360\000\000D\002E\002\360\000\000E\002F\002\330\004\025\220Q\320\026(\250\001\330\004\013\2101\200\001\340,-\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0333\2602\260Q\330\004\020\220\016\230a\230x\240q\330\004\020\220\016\230a\230x\240q\330\004\021\220\037\240\002\240$\240i\250{\270$\270f\300A\300Y\310m\320[\\\320\\h\320hi\320ix\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002P\002\360\000\000P\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002d\002\360\000\000d\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\330\004\025\220Q\320\026(\250\001\330\004\025\220V\2309\240A\330\004\010\210\007\320\017\037\230q\330\010\026\220a\220v\230Q\330\004\025\220V\2309\240A\330\004\010\210\007\320\017\037\230q\330\010\026\220a\220v\230Q\330\004\013\210<\220q\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0334\260A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\320\021!\240\022\2404\240y\260\013\2704\270v\300Q\300i\310q\320P\\\320\\]\320]l\320lw\320w~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002G\002\330\004\025\220Q\320\026)\250\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w""\220e\320\0334\260A\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021!\240\022\2404\240y\260\013\2704\270v\300Q\300i\310q\320P\\\320\\]\320]l\320lt\320t~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002G\002\330\004\025\220Q\320\026)\250\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300q\310\014\320TU\320Ud\320do\320ov\320v|\320|}\320}~\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340%&\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300}\320TU\320Ua\320ab\320bq\320q|\360\000\000}\001D\002\360\000\000D\002J\002\360\000\000J\002K\002\360\000\000K\002L\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\001\310\034\320UV\320Ve\320ep\320pw\320w}\320}~\320~\177\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340&'\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\r\320UV\320Vb\320bc\320cr\320r}\360\000\000~\001E\002\360\000\000E""\002K\002\360\000\000K\002L\002\360\000\000L\002M\002\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340'(\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\r\320\r\036\230a\230x\240q\330\004\r\320\r\036\230a\230x\240q\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\035\320VW\320Wc\320cd\320ds\320s~\360\000\000\177\001E\002\360\000\000E\002K\002\360\000\000K\002L\002\360\000\000L\002W\002\360\000\000W\002b\002\360\000\000b\002h\002\360\000\000h\002n\002\360\000\000n\002o\002\360\000\000o\002p\002\330\004\025\220Q\220m\2401\330\004\013\2109\220A\200\001\340'(\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\035\320VW\320Wc\320cd\320ds\320s~\360\000\000\177\001F\002\360\000\000F\002L\002\360\000\000L\002M\002\360\000\000M\002N\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250q\330\004\016\320\016\037\230q\240\010\250\001\330\004\022\320\022#\2401\240H\250A\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310!\310<\320WX\320Xg\320gr\320ry\320y\177\360\000\000@\002A\002\360\000\000A\002L\002\360\000\000L\002W\002\360\000\000W\002b\002\360\000\000b\002h\002\360\000\000h\002i\002\360\000\000i\002j\002\330\004\025\220Q\220n\240A\330\004\013\210:\220Q\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004""\017\210w\220e\230?\250!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300Q\300l\320RS\320Sb\320bm\320mt\320tz\320z{\320{|\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340()\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310-\320WX\320Xd\320de\320et\320t\177\360\000\000@\002G\002\360\000\000G\002M\002\360\000\000M\002N\002\360\000\000N\002O\002\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340()\360.\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\024\320\024%\240Q\240h\250a\330\004\022\320\022#\2401\240H\250A\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310/\320YZ\320Zf\320fg\320gv\360\000\000w\001B\002\360\000\000B\002I\002\360\000\000I\002O\002\360\000\000O\002P\002\360\000\000P\002[\002\360\000\000[\002f\002\360\000\000f\002s\002\360\000\000s\002y\002\360\000\000y\002z\002\360\000\000z\002E\003\360\000\000E\003P\003\360\000\000P\003[\003\360\000\000[\003a\003\360\000\000a\003b\003\360\000\000b\003c\003\330\004\025\220Q\220n\240A\330\004\013\210:\320\025%\240Q\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;""\320VZ\320Z`\320`a\320aj\320ju\320ux\320x~\320~\177\360\000\000@\002I\002\360\000\000I\002T\002\360\000\000T\002Y\002\360\000\000Y\002_\002\360\000\000_\002`\002\360\000\000`\002i\002\360\000\000i\002j\002\360\000\000j\002v\002\360\000\000v\002w\002\360\000\000w\002F\003\360\000\000F\003Q\003\360\000\000Q\003X\003\360\000\000X\003^\003\360\000\000^\003_\003\360\000\000_\003`\003\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0334\260A\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021!\240\022\2404\240y\260\013\2704\270v\300Q\300i\310{\320Z^\320^d\320de\320en\320ny\320y|\360\000\000}\001C\002\360\000\000C\002D\002\360\000\000D\002M\002\360\000\000M\002X\002\360\000\000X\002]\002\360\000\000]\002c\002\360\000\000c\002d\002\360\000\000d\002m\002\360\000\000m\002n\002\360\000\000n\002z\002\360\000\000z\002{\002\360\000\000{\002J\003\360\000\000J\003R\003\360\000\000R\003\\\003\360\000\000\\\003b\003\360\000\000b\003c\003\360\000\000c\003d\003\330\004\025\220Q\320\026)\250\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033:\270!\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021'\240r\250\024\250Y\260k\300\024\300V\3101\310I\320U`\320`d\320dj\320jk\320kt\320t\177\360\000\000@\002C\002\360\000\000C\002I\002\360\000\000I\002J\002\360\000\000J\002S\002\360\000\000S\002^\002\360\000\000^\002c\002\360\000\000c\002i\002\360\000""\000i\002j\002\360\000\000j\002s\002\360\000\000s\002t\002\360\000\000t\002@\003\360\000\000@\003A\003\360\000\000A\003P\003\360\000\000P\003X\003\360\000\000X\003b\003\360\000\000b\003h\003\360\000\000h\003i\003\360\000\000i\003j\003\330\004\025\220Q\320\026/\250q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033;\2701\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021(\250\002\250$\250i\260{\300$\300f\310A\310Y\320Va\320ae\320ek\320kl\320lu\360\000\000v\001A\002\360\000\000A\002D\002\360\000\000D\002J\002\360\000\000J\002K\002\360\000\000K\002T\002\360\000\000T\002_\002\360\000\000_\002d\002\360\000\000d\002j\002\360\000\000j\002k\002\360\000\000k\002t\002\360\000\000t\002u\002\360\000\000u\002A\003\360\000\000A\003B\003\360\000\000B\003Q\003\360\000\000Q\003Y\003\360\000\000Y\003c\003\360\000\000c\003i\003\360\000\000i\003j\003\360\000\000j\003k\003\330\004\025\220Q\320\0260\260\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250q\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310+\320UY\320Y_\320_`\320`i\320it\320tw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002S\002\360\000\000S\002X\002\360\000\000X\002^\002\360\000\000^\002_\002\360\000\000_\002h\002\360\000\000h\002i\002\360\000\000i\002u\002\360\000\000u\002v\002\360\000\000v\002E\003\360\000\000E\003M\003\360\000\000M\003W\003""\360\000\000W\003]\003\360\000\000]\003^\003\360\000\000^\003_\003\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0335\260Q\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021\"\240\"\240D\250\t\260\033\270D\300\006\300a\300y\320P[\320[_\320_e\320ef\320fo\320oz\320z}\360\000\000~\001D\002\360\000\000D\002E\002\360\000\000E\002N\002\360\000\000N\002Y\002\360\000\000Y\002^\002\360\000\000^\002d\002\360\000\000d\002e\002\360\000\000e\002n\002\360\000\000n\002o\002\360\000\000o\002{\002\360\000\000{\002|\002\360\000\000|\002K\003\360\000\000K\003S\003\360\000\000S\003]\003\360\000\000]\003c\003\360\000\000c\003d\003\360\000\000d\003e\003\330\004\025\220Q\320\026*\250!\330\004\013\2101\200\001\340|}\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260\"\260A\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310[\320X\\\320\\b\320bc\320cl\320lw\320wz\360\000\000{\001A\002\360\000\000A\002B\002\360\000\000B\002K\002\360\000\000K\002V\002\360\000\000V\002[\002\360\000\000[\002a\002\360\000\000a\002b\002\360\000\000b\002k\002\360\000\000k\002y\002\360\000\000y\002z\002\360\000\000z\002F\003\360\000\000F\003G\003\360\000\000G\003V\003\360\000\000V\003^\003\360\000\000^\003h\003\360\000\000h\003n\003\360\000\000n\003o\003\360\000\000o\003p\003\330\004\025\220Q\320\026'\240q\330\004\013\2101\200\001\360&\000\005""\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QU\320U[\320[\\\320\\e\320ep\320ps\320sy\320yz\360\000\000{\001D\002\360\000\000D\002O\002\360\000\000O\002T\002\360\000\000T\002Z\002\360\000\000Z\002[\002\360\000\000[\002d\002\360\000\000d\002e\002\360\000\000e\002q\002\360\000\000q\002r\002\360\000\000r\002A\003\360\000\000A\003L\003\360\000\000L\003S\003\360\000\000S\003Y\003\360\000\000Y\003Z\003\360\000\000Z\003[\003\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0331\260\021\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\035\230b\240\004\240I\250[\270\004\270F\300!\3009\310K\320W[\320[a\320ab\320bk\320kv\320vy\320y\177\360\000\000@\002A\002\360\000\000A\002J\002\360\000\000J\002U\002\360\000\000U\002Z\002\360\000\000Z\002`\002\360\000\000`\002a\002\360\000\000a\002j\002\360\000\000j\002k\002\360\000\000k\002w\002\360\000\000w\002x\002\360\000\000x\002G\003\360\000\000G\003O\003\360\000\000O\003Y\003\360\000\000Y\003_\003\360\000\000_\003`\003\360\000\000`\003a\003\330\004\025\220Q\320\026&\240a\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z""\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0336\260a\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021#\2402\240T\250\031\260+\270T\300\026\300q\310\t\320Q\\\320\\`\320`f\320fg\320gp\320p{\320{~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002O\002\360\000\000O\002Z\002\360\000\000Z\002_\002\360\000\000_\002e\002\360\000\000e\002f\002\360\000\000f\002o\002\360\000\000o\002p\002\360\000\000p\002|\002\360\000\000|\002}\002\360\000\000}\002L\003\360\000\000L\003T\003\360\000\000T\003^\003\360\000\000^\003d\003\360\000\000d\003e\003\360\000\000e\003f\003\330\004\025\220Q\320\026+\2501\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260!\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310[\320X\\\320\\b\320bc\320cl\320lw\320wz\360\000\000{\001A\002\360\000\000A\002B\002\360\000\000B\002K\002\360\000\000K\002V\002\360\000\000V\002[\002\360\000\000[\002a\002\360\000\000a\002b\002\360\000\000b\002k\002\360\000\000k\002l\002\360\000\000l\002x\002\360\000\000x\002y\002\360\000\000y\002H\003\360\000\000H\003P\003\360\000\000P\003Z\003\360\000\000Z\003`\003\360\000\000`\003a\003\360\000\000a\003b\003\330\004\025\220Q\320\026'\240q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0333\2601\330\004\021\220\036\230q\240\010\250\001\330\004""\021\220\037\240\002\240$\240i\250{\270$\270f\300A\300Y\310k\320Y]\320]c\320cd\320dm\320mx\320x{\360\000\000|\001B\002\360\000\000B\002C\002\360\000\000C\002L\002\360\000\000L\002W\002\360\000\000W\002\\\002\360\000\000\\\002b\002\360\000\000b\002c\002\360\000\000c\002l\002\360\000\000l\002m\002\360\000\000m\002y\002\360\000\000y\002z\002\360\000\000z\002I\003\360\000\000I\003Q\003\360\000\000Q\003[\003\360\000\000[\003a\003\360\000\000a\003b\003\360\000\000b\003c\003\330\004\025\220Q\320\026(\250\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0338\270\001\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021%\240R\240t\2509\260K\270t\3006\310\021\310)\320S^\320^b\320bh\320hi\320ir\320r}\360\000\000~\001A\002\360\000\000A\002G\002\360\000\000G\002H\002\360\000\000H\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002a\002\360\000\000a\002g\002\360\000\000g\002h\002\360\000\000h\002q\002\360\000\000q\002r\002\360\000\000r\002~\002\360\000\000~\002\177\002\360\000\000\177\002N\003\360\000\000N\003V\003\360\000\000V\003`\003\360\000\000`\003f\003\360\000\000f\003g\003\360\000\000g\003h\003\330\004\025\220Q\320\026-\250Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0339\270\021\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021&\240b\250\004\250I\260[\300\004\300F\310!\3109\320T_\320_c\320ci\320ij\320js\320s~\360\000\000\177\001B\002\360\000\000B\002H\002""\360\000\000H\002I\002\360\000\000I\002R\002\360\000\000R\002]\002\360\000\000]\002b\002\360\000\000b\002h\002\360\000\000h\002i\002\360\000\000i\002r\002\360\000\000r\002s\002\360\000\000s\002\177\002\360\000\000\177\002@\003\360\000\000@\003O\003\360\000\000O\003W\003\360\000\000W\003a\003\360\000\000a\003g\003\360\000\000g\003h\003\360\000\000h\003i\003\330\004\025\220Q\320\026.\250a\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0337\260q\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021$\240B\240d\250)\260;\270d\300&\310\001\310\031\320R]\320]a\320ag\320gh\320hq\320q|\320|\177\360\000\000@\002F\002\360\000\000F\002G\002\360\000\000G\002P\002\360\000\000P\002[\002\360\000\000[\002`\002\360\000\000`\002f\002\360\000\000f\002g\002\360\000\000g\002p\002\360\000\000p\002q\002\360\000\000q\002}\002\360\000\000}\002~\002\360\000\000~\002M\003\360\000\000M\003U\003\360\000\000U\003_\003\360\000\000_\003e\003\360\000\000e\003f\003\360\000\000f\003g\003\330\004\025\220Q\320\026,\250A\330\004\013\2101\200\001\340bc\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\025\240a\330\004\016\210a\330\004\021\220\030\230\022\2306\240\030\250\022\2504\250v\260X\270R\270t\300<\310{\320Zg\320gt\320tu\360\000\000v\001B\002\360\000\000B\002C\002\360\000\000C\002R\002\360\000\000R\002S\002\360\000\000S\002T\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340c}\360\000\000~\001X\002\360\000\000X\002m\002\360\000\000m\002G\003\360\000\000G\003H\003\3606\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330""\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\025\240a\330\004\017\210q\330\004\017\210q\330\004\021\220\031\230\"\230F\240(\250\"\250D\260\006\260h\270b\300\004\300L\320P[\320[h\320hw\360\000\000x\001G\002\360\000\000G\002V\002\360\000\000V\002e\002\360\000\000e\002t\002\360\000\000t\002u\002\360\000\000u\002A\003\360\000\000A\003B\003\360\000\000B\003Q\003\360\000\000Q\003R\003\360\000\000R\003]\003\360\000\000]\003^\003\360\000\000^\003_\003\330\004\025\220Q\220l\240!\330\004\013\210;\220a\200\001\340cd\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\025\240a\330\004\016\210a\330\004\021\220\031\230\"\230F\240(\250\"\250D\260\006\260h\270b\300\004\300L\320P[\320[h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002T\002\360\000\000T\002U\002\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340d}\360\000\000~\001W\002\360\000\000W\002X\002\360.\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\025\240a\330\004\016\210a\330\004\021\220\032\2302\230V\2408\2502\250T\260\026\260x\270r\300\024\300\\\320Q\\\320\\i\320iw\360\000\000x\001F\002\360\000\000F\002T\002\360\000\000T\002U\002\360\000\000U\002a\002\360\000\000a\002b\002\360\000\000b\002q\002\360\000\000q\002r\002\360\000\000r\002s\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340d~\360\000\000\177\001Y\002\360\000\000Y\002Z\002\3602\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\025\240a\330\004\017\210q""\330\004\017\210q\330\004\021\220\032\2302\230V\2408\2502\250T\260\026\260x\270r\300\024\300\\\320Q\\\320\\i\320ix\360\000\000y\001H\002\360\000\000H\002W\002\360\000\000W\002X\002\360\000\000X\002d\002\360\000\000d\002e\002\360\000\000e\002t\002\360\000\000t\002u\002\360\000\000u\002@\003\360\000\000@\003A\003\360\000\000A\003B\003\330\004\025\220Q\220m\2401\330\004\013\210;\220a\200\001\340ef\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\025\240a\330\004\016\210a\330\004\021\220\033\230B\230f\240H\250B\250d\260&\270\010\300\002\300$\300l\320R]\320]j\320jw\320wx\360\000\000y\001E\002\360\000\000E\002F\002\360\000\000F\002U\002\360\000\000U\002V\002\360\000\000V\002W\002\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340fg\3602\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\025\240a\330\004\027\220q\330\004\030\230\001\330\004\027\220q\330\004\021\220\034\230R\230v\240X\250R\250t\2606\270\030\300\022\3004\300|\320S^\320^k\320kx\320xy\360\000\000z\001F\002\360\000\000F\002G\002\360\000\000G\002V\002\360\000\000V\002W\002\360\000\000W\002j\002\360\000\000j\002k\002\360\000\000k\002\177\002\360\000\000\177\002@\003\360\000\000@\003A\003\330\004\025\220Q\220o\240Q\330\004\013\320\013\036\320\0362\260!\200\001\340fg\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\025\240a\330\004\016\210a\330\004\021\220\034\230R\230v\240X\250R\250t\2606\270\030\300\022\3004\300|\320S^\320^k\320kx\320xy\360\000\000z\001F\002\360\000\000F\002G\002\360\000\000G\002V\002\360\000\000V\002W\002\360\000\000W\002X\002\330""\004\025\220Q\220o\240Q\330\004\013\2101\200\001\340\004\022\320\022'\240q\250\r\260[\300\013\3101\330\004\025\220Q\320\026.\250a\200\001\360\014\000\005\020\210q\330\004\020\220\001\220\031\230!\2309\240A\330\004\020\220\001\220\021\330\004\013\2101\330\004\010\210\007\210q\320\0201\260\022\2601\340\004\022\220)\2301\230A\330\004\010\210\007\210q\220\001\330\004\010\210\016\220a\330\010\020\220\013\2301\230A\330\010\013\2104\210z\230\021\230'\240\021\330\014\024\220A\330\010\014\210G\2201\320\024$\240L\260\001\340\004\r\210Y\220a\220q\330\004\007\200q\330\010\014\210G\2201\220A\330\004\010\210\t\220\021\330\010\014\210G\2201\320\024$\240G\2506\260\021\260!\330\010\021\220\027\230\001\230\035\240g\250V\2601\260A\330\010\020\220\001\220\031\230&\240\001\240\021\330\010\013\2106\220\023\220A\330\014\020\220\002\220%\220s\230%\230q\240\001\240\024\240R\240t\2507\260\"\260G\2701\270F\300!\3001\340\004\016\210i\220q\230\001\330\004\010\210\007\210q\220\001\330\004\010\210\n\220!\330\010\013\2107\220#\220Q\330\014\025\220Q\330\010\014\210G\2201\220I\230R\230q\340\004\r\210W\220A\220T\230\025\230a\230q\330\004\r\210W\220A\220Q\330\004\010\210\007\210q\220\003\2202\220U\230!\2301\330\004\024\220D\230\005\230Q\230a\330\004\013\210:\220Q\200\001\340'?\270q\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\r\270Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\035\320V^\320^_\320_k\320kl\320l{\360\000\000|\001G\002\360\000\000G\002N\002\360\000\000N\002T\002\360\000\000T\002U\002\360\000\000U\002V\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340]v\360\000\000w\001P\002\360\000\000P\002Q\002\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030""\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\016\270n\310A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gr\320rw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002V\002\360\000\000V\002d\002\360\000\000d\002r\002\360\000\000r\002s\002\360\000\000s\002\177\002\360\000\000\177\002@\003\360\000\000@\003O\003\360\000\000O\003Z\003\360\000\000Z\003a\003\360\000\000a\003g\003\360\000\000g\003h\003\360\000\000h\003i\003\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340\\v\360\000\000w\001Q\002\360\000\000Q\002f\002\360\000\000f\002@\003\360\000\000@\003A\003\3602\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250\177\270o\310_\320\\k\320kl\330\004\017\320\017 \240\001\240\030\250\021\330\004\017\320\017 \240\001\240\030\250\021\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fq\320qv\320v|\320|}\360\000\000~\001G\002\360\000\000G\002V\002\360\000\000V\002e\002\360\000\000e\002t\002\360\000\000t\002C\003\360\000\000C\003R\003\360\000\000R\003S\003\360\000\000S\003_\003\360\000\000_\003`\003\360\000\000`\003o\003\360\000\000o\003z\003\360\000\000z\003B\004\360\000\000B\004H\004\360\000\000H\004I\004\360\000\000I\004T\004\360\000\000T\004_\004\360\000\000_\004g\004\360\000\000g\004m\004\360\000\000m\004n\004\360\000\000n\004o\004\330\004\025\220Q\220l\240!\330\004\013\210;\220a\200\001\340]w\360\000\000x\001R\002\360\000\000R\002S\002\360.\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032""\3003\300h\310j\320X]\320]^\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\017\270\177\310a\330\004\017\320\017 \240\001\240\030\250\021\330\004\017\320\017 \240\001\240\030\250\021\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gr\320rw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002W\002\360\000\000W\002f\002\360\000\000f\002u\002\360\000\000u\002v\002\360\000\000v\002B\003\360\000\000B\003C\003\360\000\000C\003R\003\360\000\000R\003]\003\360\000\000]\003e\003\360\000\000e\003k\003\360\000\000k\003l\003\360\000\000l\003w\003\360\000\000w\003B\004\360\000\000B\004J\004\360\000\000J\004P\004\360\000\000P\004Q\004\360\000\000Q\004R\004\330\004\025\220Q\220m\2401\330\004\013\210;\220a\200\001\340wx\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]e\320eo\320ou\320uv\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002P\002\360\000\000P\002V\002\360\000\000V\002\\\002\360\000\000\\\002]\002\360\000\000]\002f\002\360\000\000f\002s\002\360\000\000s\002t\002\360\000\000t\002@\003\360\000\000@\003A\003\360\000\000A\003P\003\360\000\000P\003[\003\360\000\000[\003b\003\360\000\000b\003h\003\360\000\000h\003i\003\360\000\000i\003j\003\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\330\004\007\200y\220\003\2201\330\010\017\210q\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#""\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\340\010\026\220a\330\004\n\210)\2201\220A\330\010\027\220z\240\021\200\001\360\004\000z\001R\002\360\000\000R\002S\002\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]e\320eo\320ou\320uv\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250}\270A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fq\320qv\320v|\320|}\360\000\000~\001G\002\360\000\000G\002R\002\360\000\000R\002X\002\360\000\000X\002^\002\360\000\000^\002_\002\360\000\000_\002h\002\360\000\000h\002u\002\360\000\000u\002B\003\360\000\000B\003C\003\360\000\000C\003O\003\360\000\000O\003P\003\360\000\000P\003_\003\360\000\000_\003j\003\360\000\000j\003q\003\360\000\000q\003w\003\360\000\000w\003x\003\360\000\000x\003y\003\330\004\025\220Q\220l\240!\330\004\013\2101"; + #else /* compression: none (63769 bytes) */ +const char* const bytes = ": 3ADXR has no unstable period of its own; it follows the inner ADX. Set 'ADX' instead.A period of 1 performs no smoothingAllocation Error (TA_ALLOC_ERR)Bad Object (TA_BAD_OBJECT)Bad Parameter (TA_BAD_PARAM)Bull/Bear Pattern (Bearish < 0, Neutral = 0, Bullish > 0)Dashed LineDotted LineDouble Exponential Moving AverageExponential Moving AverageFunction Not Found (TA_FUNC_NOT_FOUND)Function has a streaming APIFunction has an unstable periodGroup Not Found (TA_GROUP_NOT_FOUND)Hull Moving AverageInput Not All Initialized (TA_INPUT_NOT_ALL_INITIALIZE)Inputs:Insufficient History (TA_INSUFFICIENT_HISTORY)Internal Error (TA_INTERNAL_ERROR)Invalid Handle (TA_INVALID_HANDLE)Invalid List Type (TA_INVALID_LIST_TYPE)Invalid Parameter Function (TA_INVALID_PARAM_FUNCTION)Invalid Parameter Holder (TA_INVALID_PARAM_HOLDER)Invalid Parameter Holder Type (TA_INVALID_PARAM_HOLDER_TYPE)Invalid parameter value for Kaufman Adaptive Moving AverageLibrary Not Initialized (TA_LIB_NOT_INITIALIZE)MESA Adaptive Moving AverageMFI's unstable period was retired in TA-Lib C.No Moving Average (identity)NoneNot Supported (TA_NOT_SUPPORTED)Not enough price arguments: expected Note that Cython is deliberately stricter than PEP-484 and rejects subclasses of builtin types. If you need to pass subclasses then set the 'annotation_typing' directive to False.Out-of-Range End Index (TA_OUT_OF_RANGE_END_INDEX)Out-of-Range Start Index (TA_OUT_OF_RANGE_START_INDEX)Output Not All Initialized (TA_OUTPUT_NOT_ALL_INITIALIZE)Output can be NaN or infiniteOutput can be negativeOutput can be positiveOutput can be zeroOutput is a candlestickOutput is optional (nullable)Output is over volumeOutput is path-dependentOutput scale same as inputOutputs:Parameters:Pattern (Bool)STOCHRSI has no unstable period of its own; it follows the inner RSI. Set 'RSI' instead.Simple Moving AverageStrength Pattern ([-200..-100] = Bearish, [-100..0] = Getting Bearish, 0 = Neutral, [0..100] = Getting Bullish, [100-200] = Bullish)The Function's"" Own Default Moving Average\n This is a pythonic wrapper around TALIB's abstract interface. It is\n intended to simplify using individual TALIB functions by providing a\n unified interface for setting/controlling input data, setting function\n parameters and retrieving results. Input data consists of a ``dict`` of\n ``numpy`` arrays (or a ``pandas.DataFrame`` or ``polars.DataFrame``), one\n array for each of open, high, low, close and volume. This can be set with\n the set_input_arrays() method. Which keyed array(s) are used as inputs when\n calling the function is controlled using the input_names property.\n\n This class gets initialized with a TALIB function name and optionally an\n input_arrays object. It provides the following primary functions for\n setting inputs and retrieving results:\n\n ---- input_array/TA-function-parameter set-only functions -----\n - set_input_arrays(input_arrays)\n - set_function_args([input_arrays,] [param_args_andor_kwargs])\n\n Documentation for param_args_andor_kwargs can be seen by printing the\n Function instance or programmatically via the info, input_names and\n parameters properties.\n\n ----- result-returning functions -----\n - the outputs property wraps a method which ensures results are always valid\n - run([input_arrays]) # calls set_input_arrays and returns self.outputs\n - FunctionInstance([input_arrays,] [param_args_andor_kwargs]) # calls set_function_args and returns self.outputs\n Too many price arguments: expected Triangular Moving AverageTriple Exponential Moving AverageTriple Generalized Double Exponential Moving AverageUnknown ErrorUnknown Error (TA_UNKNOWN_ERR)Values represent a lower limitValues represent an upper limitWeighted Moving AverageWilder's Smoothed Moving AverageZero-Lag Exponential Moving Average] )\n\n.?, ()( [=add_note(any ndarray)%(display_name)s (%(group)s)\n (expected function failed with error code , got input array has wro""ng dimensionsinput array lengths are differentinput array type is not double[input_arrays]input_arrays parameter missing required data keyinteger (values are -100, 0 or 100)' is deprecated and has no effect: numpy._core.multiarray failed to importnumpy._core.umath failed to import%s(%s) %sstream_%stalib/_abstract.pxitalib/_common.pxitalib/_func.pxitalib/_stream.pxitalib.collectionstalib.numpytalib.ordereddicttalib.pandastalib.polarstalib.systalib.threadingtalib.warningsunstable period 'ACACCBANDSACOSADADDADOSCADRADXADXRALLAOAPOAROONAROONOSC__ARRAY_TYPESASINATANATRAVGDEVAVGPRICEAllCandleSettingsBBANDSBETABOPBodyDojiBodyLongBodyShortBodyVeryLongCCICDL2CROWSCDL3BLACKCROWSCDL3INSIDECDL3LINESTRIKECDL3OUTSIDECDL3STARSINSOUTHCDL3WHITESOLDIERSCDLABANDONEDBABYCDLADVANCEBLOCKCDLBELTHOLDCDLBREAKAWAYCDLCLOSINGMARUBOZUCDLCONCEALBABYSWALLCDLCOUNTERATTACKCDLDARKCLOUDCOVERCDLDOJICDLDOJISTARCDLDRAGONFLYDOJICDLENGULFINGCDLEVENINGDOJISTARCDLEVENINGSTARCDLGAPSIDESIDEWHITECDLGRAVESTONEDOJICDLHAMMERCDLHANGINGMANCDLHARAMICDLHARAMICROSSCDLHIGHWAVECDLHIKKAKECDLHIKKAKEMODCDLHOMINGPIGEONCDLIDENTICAL3CROWSCDLINNECKCDLINVERTEDHAMMERCDLKICKINGCDLKICKINGBYLENGTHCDLLADDERBOTTOMCDLLONGLEGGEDDOJICDLLONGLINECDLMARUBOZUCDLMATCHINGLOWCDLMATHOLDCDLMORNINGDOJISTARCDLMORNINGSTARCDLONNECKCDLPIERCINGCDLRICKSHAWMANCDLRISEFALL3METHODSCDLSEPARATINGLINESCDLSHOOTINGSTARCDLSHORTLINECDLSPINNINGTOPCDLSTALLEDPATTERNCDLSTICKSANDWICHCDLTAKURICDLTASUKIGAPCDLTHRUSTINGCDLTRISTARCDLUNIQUE3RIVERCDLUPSIDEGAP2CROWSCDLXSIDEGAP3METHODSCEILCMFCMOCMOUCOPPOCKCORRELCOSCOSHCUMSUMCVICandleSettingTypeDEFAULTDEMADISABLEDDIVDONCHIANDPODXDataFrameDotEFIEMAERERIEXPEqualFLOORFOSCFRACTALFarFunctionFunction.__call__Function.__call_functionFunction.__check_opt_input_valueFunction.__get_opt_input_valueFunction.__init__Function.__input_price_series_namesFunction.__localFunction.__repr__Function.__str__Function.__unicode___Function__call_function_Function__check_opt_input_value_Function__get_opt_input_value_Function__input_price_series_names""_Function__local_Function__localdata_Function__name_Function__namestrFunction.function_flagsFunction.get_input_arraysFunction.get_input_namesFunction.get_parametersFunction.infoFunction.lookbackFunction.output_flagsFunction.output_namesFunction.outputsFunction.runFunction.set_function_argsFunction.set_input_arraysFunction.set_input_namesFunction.set_parametersHAHMAHT_DCPERIODHT_DCPHASEHT_PHASORHT_SINEHT_TRENDLINEHT_TRENDMODEHighLowHistogramIMI__INPUT_ARRAYS_TYPES__INPUT_PRICE_SERIES_DEFAULTSKAMAKCKDJLINEARREGLINEARREG_ANGLELINEARREG_INTERCEPTLINEARREG_SLOPELNLOG10LineMAMACDMACDEXTMACDFIXMAMAMARKETFIMASSIMAVPMAXMAXINDEXMA_TypeMA_Type.__getitem__MA_Type.__init__MEDPRICEMFIMIDPOINTMIDPRICEMINMININDEXMINMAXMINMAXINDEXMINUS_DIMINUS_DMMOMMULTNATRNONENVINearOBVOrderedDict__PANDAS_DATAFRAME__PANDAS_SERIESPERCENTILEPERCENTRANKPLUS_DIPLUS_DM__POLARS_DATAFRAME__POLARS_SERIESPPOPVIPVOPVT__Pyx_PyDict_NextRefQSTICKRMAROCROCPROCRROCR100RSIRVIRVOLRangeTypeRealBodySARSAREXTSINSINHSMASMISQRTSTDDEVSTOCHSTOCHFSTOCHRSISUBSUMSUPERTRENDSeriesShadowLongShadowShortShadowVeryLongShadowVeryShortShadowsT3TANTANHTA_ACTA_ACCBANDSTA_ACOSTA_ADTA_ADDTA_ADOSCTA_ADRTA_ADXTA_ADXRTA_AOTA_APOTA_AROONTA_AROONOSCTA_ASINTA_ATANTA_ATRTA_AVGDEVTA_AVGPRICETA_BBANDSTA_BETATA_BOPTA_CCITA_CDL2CROWSTA_CDL3BLACKCROWSTA_CDL3INSIDETA_CDL3LINESTRIKETA_CDL3OUTSIDETA_CDL3STARSINSOUTHTA_CDL3WHITESOLDIERSTA_CDLABANDONEDBABYTA_CDLADVANCEBLOCKTA_CDLBELTHOLDTA_CDLBREAKAWAYTA_CDLCLOSINGMARUBOZUTA_CDLCONCEALBABYSWALLTA_CDLCOUNTERATTACKTA_CDLDARKCLOUDCOVERTA_CDLDOJITA_CDLDOJISTARTA_CDLDRAGONFLYDOJITA_CDLENGULFINGTA_CDLEVENINGDOJISTARTA_CDLEVENINGSTARTA_CDLGAPSIDESIDEWHITETA_CDLGRAVESTONEDOJITA_CDLHAMMERTA_CDLHANGINGMANTA_CDLHARAMITA_CDLHARAMICROSSTA_CDLHIGHWAVETA_CDLHIKKAKETA_CDLHIKKAKEMODTA_CDLHOMINGPIGEONTA_CDLIDENTICAL3CROWSTA_CDLINNECKTA_CDLINVERTEDHAMMERTA_CDLKICKINGTA_CDLKICKINGBYLENGTHTA_CDLLADDERBOTTOMTA_CDLLONGLEGGEDDOJITA_CDLLONGLINETA_CDLMARUBOZUTA_CDLMATCHINGLOWTA_CDLMATHOLDTA_CDLMORNINGDOJISTARTA_CDLMORNINGSTARTA_""CDLONNECKTA_CDLPIERCINGTA_CDLRICKSHAWMANTA_CDLRISEFALL3METHODSTA_CDLSEPARATINGLINESTA_CDLSHOOTINGSTARTA_CDLSHORTLINETA_CDLSPINNINGTOPTA_CDLSTALLEDPATTERNTA_CDLSTICKSANDWICHTA_CDLTAKURITA_CDLTASUKIGAPTA_CDLTHRUSTINGTA_CDLTRISTARTA_CDLUNIQUE3RIVERTA_CDLUPSIDEGAP2CROWSTA_CDLXSIDEGAP3METHODSTA_CEILTA_CMFTA_CMOTA_CMOUTA_COPPOCKTA_CORRELTA_COSTA_COSHTA_CUMSUMTA_CVITA_DEMATA_DIVTA_DONCHIANTA_DPOTA_DXTA_EFITA_EMATA_ERTA_ERITA_EXPTA_FLOORTA_FOSCTA_FRACTAL__TA_FUNCTION_NAMES__TA_FUNC_FLAGSTA_FuncTableAllocTA_FuncTableFreeTA_GetFuncHandleTA_GetFuncInfoTA_GetInputParameterInfoTA_GetLookbackTA_GetOptInputParameterInfoTA_GetOutputParameterInfoTA_GroupTableAllocTA_GroupTableFreeTA_HATA_HMATA_HT_DCPERIODTA_HT_DCPHASETA_HT_PHASORTA_HT_SINETA_HT_TRENDLINETA_HT_TRENDMODETA_IMITA_INPUT_FLAGSTA_InitializeTA_KAMATA_KCTA_KDJTA_LINEARREGTA_LINEARREG_ANGLETA_LINEARREG_INTERCEPTTA_LINEARREG_SLOPETA_LNTA_LOG10TA_MATA_MACDTA_MACDEXTTA_MACDFIXTA_MAMATA_MARKETFITA_MASSITA_MAVPTA_MAXTA_MAXINDEXTA_MEDPRICETA_MFITA_MIDPOINTTA_MIDPRICETA_MINTA_MININDEXTA_MINMAXTA_MINMAXINDEXTA_MINUS_DITA_MINUS_DMTA_MOMTA_MULTTA_NATRTA_NVITA_OBVTA_OUTPUT_FLAGSTA_PERCENTILETA_PERCENTRANKTA_PLUS_DITA_PLUS_DMTA_PPOTA_PVITA_PVOTA_PVTTA_ParamHolderAllocTA_ParamHolderFreeTA_QSTICKTA_RMATA_ROCTA_ROCPTA_ROCRTA_ROCR100TA_RSITA_RVITA_RVOLTA_RestoreCandleDefaultSettingsTA_SARTA_SAREXTTA_SINTA_SINHTA_SMATA_SMITA_SQRTTA_STDDEVTA_STOCHTA_STOCHFTA_STOCHRSITA_SUBTA_SUMTA_SUPERTRENDTA_SetCandleSettingsTA_SetCompatibilityTA_SetOptInputParamIntegerTA_SetOptInputParamRealTA_SetUnstablePeriodTA_ShutdownTA_T3TA_TANTA_TANHTA_TEMATA_TRANGETA_TRIMATA_TRIXTA_TSFTA_TSITA_TYPPRICETA_ULTOSCTA_VARTA_VHFTA_VORTEXTA_VWAPTA_VWMATA_WADTA_WCLPRICETA_WILLRTA_WMATA_ZLEMATEMATRANGETRIMATRIXTSFTSITYPPRICEULTOSCVARVHFVORTEXVWAPVWMAWADWCLPRICEWILLRWMAZLEMAaccelerationaccelerationinitlongaccelerationinitshortaccelerationlongaccelerationmaxlongaccelerationmaxshortaccelerationshort__all____annotate__appendargargsasciiastypeasyncio.coroutinesatrperiodavgperiodb""begidxbitbytes2str__call____call_functioncandlestick__check_opt_input_value__class_getitem__cline_in_tracebackclonecloseclose_datacollectionscolumn_stackcolumnscopyddecodedefault_valuedefaultsdescriptiondisplay_name__doc__docsdocumentationemptyendidxendswithenumeratefactorfastd_matypefastd_periodfastk_periodfastlimitfastmatypefastperiodfirstperiodflagflagsflags_lookup_dict__func__func_argsfunc_infofunc_linefunc_objectfunction_flagsfunction_namefunctions_get_defaults_and_docs__get_flagsget_input_arraysget_input_names__get_opt_input_valueget_parameters__getitem__groupgroupshelphighhigh_dataholderiididximport_errorinindexinfo__init__input_arraysinput_nameinput_namesinput_price_series_names__input_price_series_namesinteger_is_coroutineis_emptyitemskeykeyskwargsleftbarslengthlocal__locallookback_lookuplowlow_datalower__main__matypemaximummaxperiod__metaclass__minperiodmissingmissing_keys__module____mro_entries__msgmultipliernname__name__nannbdevnbdevdnnbdevupno_existing_input_arraysnum_inputsnum_opt_inputsnum_outputsnumpyobjectoffsetonreverseopenopenInterestopen_dataoptInopt_inputopt_input_valuesopt_inputsordereddictoutoutaroondownoutaroonupoutbearpoweroutbegidxoutbullpoweroutdoutfamaoutfastdoutfastkouthacloseouthahighouthalowouthaopenoutinphaseoutintegeroutinteger_dataoutjoutkoutleadsineoutmacdoutmacdhistoutmacdsignaloutmamaoutmaxoutmaxidxoutmaxidx_dataoutminoutminidxoutminidx_dataoutminusvioutnbelementoutplusvioutputoutput_flagsoutput_nameoutput_namesoutputsoutputs_validoutquadratureoutrealoutreallowerbandoutrealmiddlebandoutrealupperbandoutsineoutslowdoutslowkoutsmioutsmisignaloutswinghighoutswinglowpandasparamparam_nameparametersparamspenetrationpercentileperiodperiodsperiods_datapolarspop__prepare__priceprice0price1price_seriesprice_series_name_valuespricesproperty__qualname__rangetyperealreal0real0_datareal1real1_datareal_datareplace__repr__resultsretretCoderet_coderightbarsroc1periodroc2periodrocperiodrunsschemasecondperiodselfseriesset_function_argsset_input_arra""ysset_input_names__set_name__set_parameterssetdefaultsettingtypesignalmatypesignalperiodskip_firstslowd_matypeslowd_periodslowk_matypeslowk_periodslowlimitslowmatypeslowperiodstacklevelstartvaluestddevperiod__str__str2bytesstream_ACstream_ACCBANDSstream_ACOSstream_ADstream_ADDstream_ADOSCstream_ADRstream_ADXstream_ADXRstream_AOstream_APOstream_AROONstream_AROONOSCstream_ASINstream_ATANstream_ATRstream_AVGDEVstream_AVGPRICEstream_BBANDSstream_BETAstream_BOPstream_CCIstream_CDL2CROWSstream_CDL3BLACKCROWSstream_CDL3INSIDEstream_CDL3LINESTRIKEstream_CDL3OUTSIDEstream_CDL3STARSINSOUTHstream_CDL3WHITESOLDIERSstream_CDLABANDONEDBABYstream_CDLADVANCEBLOCKstream_CDLBELTHOLDstream_CDLBREAKAWAYstream_CDLCLOSINGMARUBOZUstream_CDLCONCEALBABYSWALLstream_CDLCOUNTERATTACKstream_CDLDARKCLOUDCOVERstream_CDLDOJIstream_CDLDOJISTARstream_CDLDRAGONFLYDOJIstream_CDLENGULFINGstream_CDLEVENINGDOJISTARstream_CDLEVENINGSTARstream_CDLGAPSIDESIDEWHITEstream_CDLGRAVESTONEDOJIstream_CDLHAMMERstream_CDLHANGINGMANstream_CDLHARAMIstream_CDLHARAMICROSSstream_CDLHIGHWAVEstream_CDLHIKKAKEstream_CDLHIKKAKEMODstream_CDLHOMINGPIGEONstream_CDLIDENTICAL3CROWSstream_CDLINNECKstream_CDLINVERTEDHAMMERstream_CDLKICKINGstream_CDLKICKINGBYLENGTHstream_CDLLADDERBOTTOMstream_CDLLONGLEGGEDDOJIstream_CDLLONGLINEstream_CDLMARUBOZUstream_CDLMATCHINGLOWstream_CDLMATHOLDstream_CDLMORNINGDOJISTARstream_CDLMORNINGSTARstream_CDLONNECKstream_CDLPIERCINGstream_CDLRICKSHAWMANstream_CDLRISEFALL3METHODSstream_CDLSEPARATINGLINESstream_CDLSHOOTINGSTARstream_CDLSHORTLINEstream_CDLSPINNINGTOPstream_CDLSTALLEDPATTERNstream_CDLSTICKSANDWICHstream_CDLTAKURIstream_CDLTASUKIGAPstream_CDLTHRUSTINGstream_CDLTRISTARstream_CDLUNIQUE3RIVERstream_CDLUPSIDEGAP2CROWSstream_CDLXSIDEGAP3METHODSstream_CEILstream_CMFstream_CMOstream_CMOUstream_COPPOCKstream_CORRELstream_COSstream_COSHstream_CUMSUMstream_CVIstream_DEMAstream_DIVstream_DONCHIANstream_DPOstream_DXstream_EFIstream_EMAstream_ERstream_ERIstream_EXPstream_FLOORstream_FOSCstream_FRACTALstre""am_HAstream_HMAstream_HT_DCPERIODstream_HT_DCPHASEstream_HT_PHASORstream_HT_SINEstream_HT_TRENDLINEstream_HT_TRENDMODEstream_IMIstream_KAMAstream_KCstream_KDJstream_LINEARREGstream_LINEARREG_ANGLEstream_LINEARREG_INTERCEPTstream_LINEARREG_SLOPEstream_LNstream_LOG10stream_MAstream_MACDstream_MACDEXTstream_MACDFIXstream_MAMAstream_MARKETFIstream_MASSIstream_MAVPstream_MAXstream_MAXINDEXstream_MEDPRICEstream_MFIstream_MIDPOINTstream_MIDPRICEstream_MINstream_MININDEXstream_MINMAXstream_MINMAXINDEXstream_MINUS_DIstream_MINUS_DMstream_MOMstream_MULTstream_NATRstream_NVIstream_OBVstream_PERCENTILEstream_PERCENTRANKstream_PLUS_DIstream_PLUS_DMstream_PPOstream_PVIstream_PVOstream_PVTstream_QSTICKstream_RMAstream_ROCstream_ROCPstream_ROCRstream_ROCR100stream_RSIstream_RVIstream_RVOLstream_SARstream_SAREXTstream_SINstream_SINHstream_SMAstream_SMIstream_SQRTstream_STDDEVstream_STOCHstream_STOCHFstream_STOCHRSIstream_SUBstream_SUMstream_SUPERTRENDstream_T3stream_TANstream_TANHstream_TEMAstream_TRANGEstream_TRIMAstream_TRIXstream_TSFstream_TSIstream_TYPPRICEstream_ULTOSCstream_VARstream_VHFstream_VORTEXstream_VWAPstream_VWMAstream_WADstream_WCLPRICEstream_WILLRstream_WMAstream_ZLEMAsys_ta_check_success_ta_func_unst_id_ta_func_unst_ids_ta_func_unst_retired_ta_getFuncInfo_ta_getFuncTable_ta_getGroupTable_ta_getInputParameterInfo_ta_getOptInputParameterInfo_ta_getOutputParameterInfo_ta_get_compatibility_ta_get_unstable_period_ta_initialize_ta_restore_candle_default_settings_ta_set_candle_settings_ta_set_compatibility_ta_set_unstable_period_ta_shutdown__ta_version__tabletalib._ta_lib__test__threadingtimeStamptimeperiodtimeperiod1timeperiod2timeperiod3to_numpytype_type__unicode__unst_idupdateupdate_infouppervaluevaluesversionvfactorvolumevolume_datawarnwarningswmaperiod\200\001\34001\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\021\220\021\330\004\021\220\034\230R\230v\240X\250R\250t\2606\270\030\300\022\3004\300|\320S`""\320`a\320am\320mn\320n}\320}~\320~\177\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\34001\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\034\230R\230v\240X\250R\250t\2606\270\030\300\022\3004\300|\320S`\320`a\320am\320mn\320n}\320}~\320~\177\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\34001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0337\260r\270\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\320\021$\240B\240d\250)\260;\270d\300&\310\001\310\031\320R_\320_`\320`l\320lm\320m|\360\000\000}\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002V\002\360\000\000V\002W\002\330\004\025\220Q\320\026,\250A\330\004\013\2101\200\001\3400H\320Hb\320b|\320|}\3600\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\017\210q\330\004\017\210q\330\004\021\220\034\230R\230v\240X\250R\250t\2606\270\030\300\022\3004\300|\320S`\320`o\320o~\360\000\000\177\001N\002\360\000\000N\002O\002\360\000\000O\002[\002\360\000\000[\002\\\002\360\000\000\\\002k\002\360\000\000k\002l\002\360\000\000l\002w\002\360\000\000w\002x\002\360\000\000x\002y\002\330\004\025\220Q\220o\240Q\330\004\013\210;\220a\200\001\340/0\360.\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\024\220A\330\004\022\220!\330\004\021\220\033\230B\230f\240H\250B\250d\260&\270\010\300\002\300$\300l\320Ra\320ab\320bn\320no\320o~\320~\177\360\000\000@\002J\002\360\000\000J\002K\002\360\000\000K\002[\002\360\000\000[\002\\\002\360\000\000\\\002]\002\330\004\025\220Q\220n\240A\330\004\013\210:\320\025%\240Q\200\001\340/0\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220""\033\230B\230f\240H\250B\250d\260&\270\010\300\002\300$\300l\320R_\320_`\320`l\320lm\320m|\320|}\320}~\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\34012\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\035\230b\240\006\240h\250b\260\004\260F\270(\300\"\300D\310\014\320Ta\320ab\320bn\320no\320o~\320~\177\360\000\000@\002A\002\330\004\025\220Q\320\026&\240a\330\004\013\2101\200\001\340\004\017\320\017#\2401\330\004\013\2101\200\001\360\014\000\005\022\320\021+\2501\320,>\270a\320?O\310u\320TU\320UV\330\004\025\220Q\320\0263\2601\340\004\013\2109\220A\220T\230\021\330\004\013\2104\210q\220\003\2201\220H\230F\240!\340\004\007\200w\210c\220\025\220d\230%\230x\240x\250y\270\001\330\010\017\210t\2201\220C\220q\230\001\340\004\005\330\010\020\220\001\330\010\021\220\033\230A\230T\240\030\250\021\200\001\340#;\2701\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300]\320R[\320[\\\320\\h\320hi\320ix\360\000\000y\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002R\002\360\000\000R\002S\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340#;\2701\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300]\320R\\\320\\]\320]i\320ij\320jy\360\000\000z\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002S\002\360\000\000S\002T\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\3402J\310!\360(\000\005\014\210;\220a\220q\330\004\020""\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\036\230r\240\026\240x\250r\260\024\260V\2708\3002\300T\310\034\320Ub\320bo\320op\320p|\320|}\360\000\000~\001M\002\360\000\000M\002N\002\360\000\000N\002O\002\330\004\025\220Q\320\026'\240q\330\004\013\2101\200\001\340\004\022\320\0222\260!\2601\330\004\025\220Q\320\0269\270\021\200\001\3602\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250!\330\004\020\320\020!\240\021\240(\250!\330\004\020\320\020!\240\021\240(\250!\330\004\017\320\017 \240\001\240\030\250\021\330\004\021\320\021\"\240!\2408\2501\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PT\320TZ\320Z[\320[d\320do\320or\320rx\320xy\360\000\000z\001C\002\360\000\000C\002N\002\360\000\000N\002S\002\360\000\000S\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002c\002\360\000\000c\002d\002\360\000\000d\002p\002\360\000\000p\002q\002\360\000\000q\002@\003\360\000\000@\003K\003\360\000\000K\003T\003\360\000\000T\003Z\003\360\000\000Z\003[\003\360\000\000[\003f\003\360\000\000f\003q\003\360\000\000q\003z\003\360\000\000z\003@\004\360\000\000@\004A\004\360\000\000A\004L\004\360\000\000L\004W\004\360\000\000W\004_\004\360\000\000_\004e\004\360\000\000e\004f\004\360\000\000f\004q\004\360\000\000q\004|\004\360\000\000|\004F\005\360\000\000F\005L\005\360\000\000L\005M\005\360\000\000M\005N\005\330\004\025\220Q\220i\230q\330\004\013\210<\220|\240;\250a\200\001\360\014\000\005\022\220\037\240\001\320!3\2601\3204D\300A\300Q\330\004\025\220Q\320\026(\250\001\340\004\005\330\010\020\220\t\230\021\230$\230a\330\010\021\220\031\230!\2304\230q\330\010\030\230\t\240\021\240$\240a\330\010\032\230+\240Q\240d\250(\260!\330\010\026\220c\230\021\230$""\230a\330\010\032\230#\230Q\230d\240!\330\010\027\220s\230!\2304\230q\200\001\34034\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\037\240\002\240&\250\010\260\002\260$\260f\270H\300B\300d\310,\320Vc\320cd\320dp\320pq\360\000\000r\001A\002\360\000\000A\002B\002\360\000\000B\002C\002\330\004\025\220Q\320\026(\250\001\330\004\013\2101\200\001\34034\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\020\220\001\330\004\020\220\001\330\004\021\220\037\240\002\240&\250\010\260\002\260$\260f\270H\300B\300d\310,\320Vc\320cd\320dp\320pq\360\000\000r\001A\002\360\000\000A\002B\002\360\000\000B\002N\002\360\000\000N\002O\002\360\000\000O\002P\002\330\004\025\220Q\320\026(\250\001\330\004\013\210<\220q\200\001\34045\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033;\2702\270Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\320\021(\250\002\250$\250i\260{\300$\300f\310A\310Y\320Vc\320cd\320dp\320pq\360\000\000r\001A\002\360\000\000A\002L\002\360\000\000L\002S\002\360\000\000S\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002[\002\330\004\025\220Q\320\0260\260\001\330\004\013\2101\200\001\340./\360&\000\005\016\210[\230\001\230\021\330\004\022\220)\2306\240\021\330\004\r\210V\2206\230\021\230!\330\004\016\210a\330\004\021\220\030\230\022\2306\240\030\250\022\2504\250v\260X\270R\270t\300>\320Q^\320^_\320_k\320kl\320l{\320{|\320|}\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\34078\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\320\021$\240B\240f\250H\260B\260d\270&\300\010\310\002\310$\310l\320Zg\320gh\320ht\320tu\360\000\000v\001E\002\360\000\000E\002F\002\360\000\000F\002G\002\330\004\025\220Q\320\026,\250A\330""\004\013\2101\200\001\3608\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\020\220\001\330\004\020\220\001\330\004\017\210q\330\004\021\220\021\330\004\021\220\026\220r\230\026\230x\240r\250\024\250V\2608\2702\270T\300\034\310\\\320Yd\320dq\320qr\320r~\320~\177\360\000\000@\002O\002\360\000\000O\002P\002\360\000\000P\002\\\002\360\000\000\\\002]\002\360\000\000]\002i\002\360\000\000i\002j\002\360\000\000j\002u\002\360\000\000u\002v\002\360\000\000v\002w\002\330\004\025\220Q\220i\230q\330\004\013\210<\220|\240;\250a\200A\3602\000\t\021\220\004\220A\330\010\013\210:\220Q\220n\240A\330\014\033\2301\330\014\020\220\007\220t\320\0336\260a\330\020\023\320\023&\240g\250Q\330\024\030\230\n\240!\240>\260\021\330\024\036\230d\240'\250\034\260Q\340\024\036\230d\240'\250\021\330\020\023\2201\330\024 \240\007\240q\250\001\330\014\017\210s\220!\220>\240\023\240A\330\020\025\320\025%\240Q\330\020\025\320\025&\240a\330\020\027\220q\340\020\026\220i\230q\240\001\330/6\260c\270\021\270.\310\002\310!\3309:\33004\260E\270\021\270!\330\010\017\210q\200\001\340)A\320A[\320[u\320uv\3600\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260-\270\177\310o\320]^\330\004\017\320\017 \240\001\240\030\250\021\330\004\017\320\017 \240\001\240\030\250\021\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310=\320Xg\320gv\360\000\000w\001F\002\360\000\000F\002G\002\360\000\000G\002S\002\360\000\000S\002T\002\360\000\000T\002c\002\360\000\000c\002n\002\360\000\000n\002v\002\360\000\000v\002|\002\360\000\000|\002}\002\360\000\000}\002H\003\360\000\000H\003S\003\360\000\000S\003[\003\360\000\000[\003a\003\360\000\000a""\003b\003\360\000\000b\003c\003\330\004\025\220Q\220o\240Q\330\004\013\210;\220a\200A\330\010\020\220\004\220A\330\010#\2401\330\010\014\210N\230%\230q\330\014\033\2305\240\014\250A\250[\270\001\270\021\330\014\017\210z\230\021\230.\250\001\330\020\024\220H\230A\330\024,\250G\2601\260A\340\020(\250\007\250q\260\001\330\010\017\210q\200A\360\016\000\t\021\220\004\220A\340\010\033\2302\230\\\250\025\250k\270\021\270+\300Q\300a\330\034 \240\016\250e\260;\270e\3001\330\010#\2402\240S\250\005\250\\\270\021\270\"\270A\270Q\330$(\250\005\250U\260!\360\006\000\t\020\210t\2201\220A\330\010\027\220q\330\010#\2404\320'B\300!\330\010\013\2105\220\004\220D\230\n\240!\2404\240q\250\004\250A\330\014\020\220\003\2207\230)\2401\240A\330\020\023\2204\220z\240\021\240%\240q\330\024\025\340\020\021\330\024 \240\001\320!9\270\021\270&\300\001\330\027\030\330\024\032\320\032G\300q\330\030\033\2301\230A\330\030\034\230E\240\021\240!\330\024\032\230)\2401\240A\340\010\013\320\013\036\230g\240Q\330\020\024\220J\230a\230u\240O\2601\330\014'\240u\250M\270\021\330\r \240\007\240q\330\020\024\220J\230a\230u\240O\2601\330\014'\240u\250M\270\031\300!\340\014'\240t\2504\250q\260\005\260Q\340\010\013\2103\210a\210~\230S\240\003\2401\240A\330\014\020\320\020!\240\021\240!\330\014\023\2204\220q\230\003\2301\230A\330\r\020\220\001\220\036\230t\320#<\270A\330\020\024\220C\220q\230\006\230c\240\024\240Z\250q\260\004\260A\260T\270\021\330\014\022\320\022A\300\021\330\020\023\2201\220A\330\020\024\220E\230\021\230!\330\014\022\220)\2301\230A\340\010\014\320\014\036\230b\240\010\250\001\330\010\014\320\014\034\230A\360\006\000\t\r\210L\230\t\240\021\330\014\021\220\033\230A\230[\250\001\250\033\260A\330\010\r\210U\220!\320\023#\2404\240q\360\006\000\t\r\210L\230\t\240\021\330\014\021\220\034\230Q\230k\250\021\320*<\270A\330\014\021\220\025\220a\220~\240Q\240n\260A\340\010\017\210t\2201\200A\330\010\020\220\004\220A\330\010#\2404\320'B\300!\360\006\000\t\020\210q\330\010\014\320\014\034\230A\330\014\025""\220U\230-\240q\250\001\330\014\017\320\017\037\230w\240e\2501\330\024\036\230a\230x\240q\330\020\031\230\026\230w\240g\250Q\250a\330\021!\240\027\250\005\250Q\330\024\036\230a\230x\240q\330\020\031\230\026\230y\250\002\250'\260\021\260!\330\014\020\220\007\220q\230\001\330\010\014\210M\230\025\230a\330\014\024\220D\320\030.\250a\250q\330\014\020\220\007\220q\230\001\360\006\000\t\023\220$\220l\240\"\240A\330\010\013\210:\220Q\220k\240\021\330\014\023\2205\230\010\240\005\240Q\330\014\017\210t\220:\230Q\230f\240A\330\020\027\220t\2301\230A\330\014\021\220\030\230\021\230$\230a\230v\240Q\340\014\020\220\003\220:\230Y\240a\240u\250A\330\020\025\220X\230Q\230j\250\007\250q\260\001\330\010\r\320\r\036\230a\200A\360\016\000\t\021\220\004\220A\330\010\013\2104\210u\220A\330\014\020\320\020 \240\001\330\010\016\210e\2208\2307\240!\330\010\013\2104\210z\230\021\230%\230q\330\014\022\220$\220a\220q\330\010\013\320\013\036\230g\240U\250!\330\020\032\230!\2305\240\017\250q\330\014\024\220E\230\035\240a\330\014\017\210s\220!\2205\230\003\2301\330\020\027\220\177\240a\240s\250!\2504\250v\260Q\340\020\027\320\027)\250\021\250%\250}\270A\270Q\330*0\260\001\330*2\260$\260a\330\r \240\007\240u\250A\330\020\032\230!\2305\240\017\250q\330\014\017\210s\220!\2205\230\003\2301\330\020\027\220\177\240a\240s\250!\2501\340\020\027\320\027)\250\021\250%\250}\270A\270Q\330*1\260\024\260Q\340\014\023\2203\220a\220v\230S\240\001\240\025\240c\250\027\260\001\200A\340\010\020\220\004\220A\330\010\013\2104\210w\220a\220w\230a\330\014\021\220\030\230\021\330\014\021\320\021!\240\021\360\006\000\r\022\220\037\240\013\2501\330\014\021\220\036\230{\250!\330\014\021\220\033\230K\240q\330\014\021\320\021\"\240!\360\006\000\r\022\220\030\230\037\250\001\250\024\250Q\360\006\000\r\021\220\005\220V\2301\230E\240\025\240d\250!\2501\330\020\027\320\0270\260\001\260\024\260Y\270a\330\020\035\230T\240\021\240!\330\020\023\2204\220q\320\030(\250\003\2501\330\024\030\230\001\320\031+\320+H\310\001\310\021\330""\020\025\220\\\240\021\240.\260\001\330\014\021\220\025\220a\320\027(\250\004\250A\360\006\000\r\021\220\005\220V\2301\230E\240\025\240d\250!\2501\330\020\027\320\0273\2601\260D\270\t\300\021\330\020\035\230T\240\021\240!\330\020\025\220[\240\001\240\036\250q\330\014\021\220\025\220a\320\027'\240t\2501\360\006\000\r\022\220\025\220a\320\027)\250\033\260A\330\014\020\220\005\220V\2301\230E\240\025\240d\250!\2501\330\020\027\320\0271\260\021\260$\260i\270q\330\020\036\230d\240!\2401\330\020\025\220U\230!\230?\250!\250?\270$\270a\270q\330\020\025\220X\230Q\230o\250Q\330\014\021\220\025\220a\320\027)\250\024\250Q\330\010\017\210q\200A\330\010\014\210A\330\014\023\2206\230\021\330\014\023\2206\230\021\330\014\023\2206\230\021\330\014\023\2207\230!\330\014\023\2207\230!\330\014\023\2208\2301\330\014\023\2207\230!\330\014\023\2207\230!\330\014\023\2205\230\001\330\014\023\2206\230\021\330\014\023\220;\230a\330\014\023\220:\230Q\330\014\023\2208\2301\330\014\023\2206\230\021\200A\360\010\000\t\021\220\004\220A\330\010\020\220\005\220[\240\001\240\033\250A\250Q\330\010\013\2106\220\023\220A\330\014\024\220E\230\033\240A\240[\260\001\260\021\330\010\017\210q\200A\360\010\000\t\021\220\004\220A\330\010\014\210L\320\030(\250\013\2606\270\021\330\014\021\220\034\230Q\230k\250\021\320*<\270A\330\014\021\220\025\220a\220~\240Q\240n\260A\330\010\r\320\r\036\230a\200A\360\010\000\t\021\220\004\220A\330\010\026\220a\340\010\014\210G\2201\330\014\017\210t\2203\220e\2301\330\020\030\230\006\230a\230q\330\020\023\2204\320\027/\250q\260\005\260Q\330\024\031\230\033\240A\240T\250\021\250+\260V\2701\270A\330\024\"\240!\330\021\025\220S\230\005\230Q\330\020\025\220\\\240\021\240$\240a\320'9\270\026\270q\300\001\330\020\025\220U\230!\230>\250\021\250'\260\026\260q\270\001\340\010\013\2101\330\014\031\230\021\330\014\017\210t\320\023$\240A\240T\250\021\250!\330\020\035\230Q\330\014\017\210s\220!\2206\230\022\2301\330\020\024\220C\220~\240Y\250a\250u\260A\330\024\031\230\021\330\024\027\220r""\230\022\2303\230a\230q\330\030 \240\004\240A\240Q\330\030\033\2304\320\0377\260q\270\014\300A\330\034!\240\033\250A\250[\270\001\270\033\300A\330\034*\250!\340\010\013\2105\220\003\2201\330\014\017\210q\330\020\025\220U\230!\320\033+\2504\250q\330\014\021\320\021\"\240!\200A\360\014\000\t\021\220\004\220A\340\010\021\320\021&\240a\240t\2501\330\010\014\210C\210}\230I\240Q\240e\2501\330\014\024\220D\320\030.\250a\250q\330\014\024\220E\230\033\240A\240Z\250q\260\001\330\014\017\210v\220V\320\0332\260#\260V\2706\300\021\330\020)\250\021\250(\260#\260Q\330\021\027\220v\320\0357\260s\270&\300\006\300a\330\020,\250A\250X\260S\270\001\340\010\023\320\023#\2401\240A\330\010\034\230A\230Q\330\010\017\210q\200A\360\010\000\t\021\220\004\220A\330\010\013\320\013\036\230g\240Q\330\014\020\220\n\230!\2305\240\017\250q\330\014\023\2205\230\r\240V\2501\340\014\023\2205\230\r\240U\250!\200A\360\010\000\t\021\220\004\220A\330\010\016\210k\230\021\330\010\014\210M\230\025\230a\330\014\017\210q\220\r\230T\320!7\260q\270\001\330\010\017\210q\200A\360\n\000\t\021\220\004\220A\330\010\016\210k\230\021\330\010\014\210N\230%\230q\330\014\017\210q\220\016\230e\240<\250q\260\013\2701\270A\330\010\017\210q\200\001\360\004\000A\002B\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0336\260b\270\001\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021#\2402\240T\250\031\260+\270T\300\026\300q\310\t\320Q\\\320\\`\320`f\320fg\320gp\320p{\320{~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002O\002\360\000\000O\002Z\002\360\000\000Z\002_\002\360\000\000_\002e\002\360\000\000e\002f\002\360\000\000f\002o\002\360\000\000o\002}\002\360\000\000}\002~\002\360\000\000~\002J\003\360\000\000J\003K\003\360""\000\000K\003Z\003\360\000\000Z\003b\003\360\000\000b\003l\003\360\000\000l\003r\003\360\000\000r\003s\003\360\000\000s\003t\003\330\004\025\220Q\320\026+\2501\330\004\013\2101\200A\330\010\020\220\004\220H\230K\240q\250\013\2601\260A\330\010\013\2106\220\027\320\0305\260Q\330\014\024\220A\330\r\023\2207\320\0324\260A\330\014\024\220A\340\010\013\210:\220Q\220g\230Q\330\013\022\220!\330\r\023\2207\230!\330\014\022\220)\2301\330\020\021\330\024 \240\005\240[\260\004\260A\260V\2701\330\010\017\210q\200A\340\010\014\210J\220m\2406\250\021\330\010\014\210M\230\024\230Q\330\010\014\210J\220i\230q\240\004\240A\360\006\000\t\r\210O\2309\240F\250!\360\006\000\t\r\320\014\036\230b\240\010\250\001\330\010\014\210O\2301\200A\330\010\017\320\017%\240Q\240d\250&\260\001\260\021\200\001\360\004\000A\002Y\002\360\000\000Y\002Z\002\360.\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210[\230\001\230\021\330\004\022\220)\2306\240\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\016\210a\330\004\021\220\031\230\"\230F\240(\250\"\250D\260\006\260h\270b\300\004\300L\320P[\320[h\320hv\360\000\000w\001D\002\360\000\000D\002Q\002\360\000\000Q\002R\002\360\000\000R\002^\002\360\000\000^\002_\002\360\000\000_\002n\002\360\000\000n\002o\002\360\000\000o\002p\002\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340@A\360&\000\005\014\210;\220a\220q\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3005\310\001\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QV\320V\\\320\\]\320]f\320fs\320st\360\000\000u\001A\002\360\000\000A\002B\002\360\000\000B\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002c\002\360\000\000c\002i\002\360\000\000i""\002j\002\360\000\000j\002k\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340@A\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250q\330\004\023\320\023$\240A\240X\250Q\330\004\021\320\021\"\240!\2408\2501\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fs\320st\360\000\000u\001A\002\360\000\000A\002B\002\360\000\000B\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002h\002\360\000\000h\002n\002\360\000\000n\002o\002\360\000\000o\002z\002\360\000\000z\002E\003\360\000\000E\003O\003\360\000\000O\003U\003\360\000\000U\003V\003\360\000\000V\003W\003\330\004\025\220Q\220l\240!\330\004\013\210?\230!\200\001\340$<\270A\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300m\320Sb\320bc\320co\320op\320p\177\360\000\000@\002K\002\360\000\000K\002R\002\360\000\000R\002X\002\360\000\000X\002Y\002\360\000\000Y\002Z\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340$<\270A\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300m\320S[\320[\\\320\\h\320hi\320ix\360\000\000y\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002R\002\360\000\000R\002S\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200A\360\n\000\t\017\210d\220(\230(\240%\240q\330\010\013\2104\210z\230\021\230%\230q\330\014\022\220$""\220a\220q\330\010\017\210q\200A\330\010\017\210q\200A\330\010\017\210q\220\007\220q\230\001\200A\330\010\017\210t\2208\2301\230A\200A\360\n\000\t\020\210t\2208\2305\240\001\240\021\200A\360\n\000\t\020\210t\2208\2305\240\005\240Q\200A\360\n\000\t\020\210t\2208\2305\240\001\240\037\260\005\260Q\200A\330\010\017\210u\220A\220S\230\001\200A\330\010\017\210u\220B\220d\230!\200A\330\010\017\210w\220a\220t\2308\2401\200\001\340A[\320[z\360\000\000{\001_\002\360\000\000_\002\177\002\360\000\000\177\002b\003\360\000\000b\003G\004\360\000\000G\004h\004\360\000\000h\004i\004\3604\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\r\320=O\320Of\320fy\360\000\000z\001P\002\360\000\000P\002h\002\360\000\000h\002|\002\360\000\000|\002}\002\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gt\360\000\000u\001G\002\360\000\000G\002^\002\360\000\000^\002q\002\360\000\000q\002G\003\360\000\000G\003_\003\360\000\000_\003s\003\360\000\000s\003J\004\360\000\000J\004K\004\360\000\000K\004W\004\360\000\000W\004X\004\360\000\000X\004g\004\360\000\000g\004r\004\360\000\000r\004y\004\360\000\000y\004\177\004\360\000\000\177\004@\005\360\000\000@\005A\005\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340BC\360&\000\005\r\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300F\310!\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260%\260v\270Q\270i\300{\320RX\320X^\320^_\320_h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002^\002\360\000\000^\002e\002\360\000\000e\002k\002""\360\000\000k\002l\002\360\000\000l\002m\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340BC\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300E\310\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2605\270\006\270a\270y\310\013\320SX\320X^\320^_\320_h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002l\002\360\000\000l\002m\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340BC\360(\000\005\014\210;\220a\220q\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3006\310\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300{\320RX\320X^\320^_\320_h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002l\002\360\000\000l\002m\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340BC\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310+\320UX\320X^\320^_\320_h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002l\002\360\000\000l\002m\002\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340BX\320X""Y\360,\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\033\270A\330\004\023\220>\240\021\240(\250!\330\004\022\220.\240\001\240\030\250\021\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310+\320UX\320X^\320^_\320_h\320hs\320s\177\360\000\000@\002A\002\360\000\000A\002M\002\360\000\000M\002N\002\360\000\000N\002]\002\360\000\000]\002e\002\360\000\000e\002q\002\360\000\000q\002w\002\360\000\000w\002x\002\360\000\000x\002C\003\360\000\000C\003K\003\360\000\000K\003V\003\360\000\000V\003\\\003\360\000\000\\\003]\003\360\000\000]\003^\003\330\004\025\220Q\220n\240A\330\004\013\210?\230!\200\001\340*B\300!\360(\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\026\220r\230\026\230x\240r\250\024\250V\2608\2702\270T\300\034\310]\320Zc\320cd\320dp\320pq\360\000\000r\001A\002\360\000\000A\002B\002\360\000\000B\002C\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340*B\300!\360(\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\026\220r\230\026\230x\240r\250\024\250V\2608\2702\270T\300\034\310]\320Zd\320de\320eq\320qr\360\000\000s\001B\002\360\000\000B\002C\002\360\000\000C\002D\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340+C\3001\360(\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\027\230\002\230&\240\010\250\002\250$\250f\260H\270B\270d\300,\310m\320[c\320cd\320dp\320pq\360\000\000r\001A\002\360\000\000A\002B\002\360\000\000B\002C\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340+C\3001\360(\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021""\220\027\230\002\230&\240\010\250\002\250$\250f\260H\270B\270d\300,\310m\320[j\320jk\320kw\320wx\360\000\000y\001H\002\360\000\000H\002I\002\360\000\000I\002J\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340+C\3001\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260\"\260M\300\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310]\320Zg\320gh\320ht\320tu\360\000\000v\001E\002\360\000\000E\002P\002\360\000\000P\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002_\002\330\004\025\220Q\320\026'\240q\330\004\013\2101\200\001\340+C\320C[\320[\\\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\027\230\002\230&\240\010\250\002\250$\250f\260H\270B\270d\300,\310m\320[h\320hq\320qr\320r~\320~\177\360\000\000@\002O\002\360\000\000O\002P\002\360\000\000P\002Q\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340CD\360&\000\005\014\210;\220a\220q\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3005\310\001\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TY\320Y_\320_`\320`i\320iv\320vw\360\000\000x\001D\002\360\000\000D\002E\002\360\000\000E\002T\002\360\000\000T\002_\002\360\000\000_\002f\002\360\000\000f\002l\002\360\000\000l\002m\002\360\000\000m\002n\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340CD\360.\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320""\0330\260\002\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\030\320\030)\250\021\250(\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320iv\320vw\360\000\000x\001D\002\360\000\000D\002E\002\360\000\000E\002T\002\360\000\000T\002_\002\360\000\000_\002o\002\360\000\000o\002u\002\360\000\000u\002v\002\360\000\000v\002A\003\360\000\000A\003L\003\360\000\000L\003]\003\360\000\000]\003c\003\360\000\000c\003d\003\360\000\000d\003o\003\360\000\000o\003z\003\360\000\000z\003J\004\360\000\000J\004P\004\360\000\000P\004Q\004\360\000\000Q\004R\004\330\004\025\220Q\220o\240Q\330\004\013\320\013\036\320\0362\260!\200\001\340CD\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320iv\320vw\360\000\000x\001D\002\360\000\000D\002E\002\360\000\000E\002T\002\360\000\000T\002_\002\360\000\000_\002f\002\360\000\000f\002l\002\360\000\000l\002m\002\360\000\000m\002n\002\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\340CZ\320Zq\320qr\360,\000\005\014\210;\220a\220q\330\004\016\210k\230\021\230!\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3007\310!\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250l\270,\300a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300{\320RY\320Y_\320_`\320`i\320iu\360\000\000v\001B\002\360\000\000B\002K\002\360\000\000K\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002h\002\360\000\000h\002s\002\360\000\000s\002z\002\360\000\000z\002@\003\360\000\000@\003A\003\360\000\000A\003B\003""\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\360\004\000C\002D\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0338\270\002\270!\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021%\240R\240t\2509\260K\270t\3006\310\021\310)\320S^\320^b\320bh\320hi\320ir\320r}\360\000\000~\001A\002\360\000\000A\002G\002\360\000\000G\002H\002\360\000\000H\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002a\002\360\000\000a\002g\002\360\000\000g\002h\002\360\000\000h\002q\002\360\000\000q\002\177\002\360\000\000\177\002@\003\360\000\000@\003L\003\360\000\000L\003M\003\360\000\000M\003\\\003\360\000\000\\\003d\003\360\000\000d\003n\003\360\000\000n\003t\003\360\000\000t\003u\003\360\000\000u\003v\003\330\004\025\220Q\320\026-\250Q\330\004\013\2101\200\001\340+D\300A\360(\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\027\230\002\230&\240\010\250\002\250$\250f\260H\270B\270d\300,\310n\320\\k\320kl\320lx\320xy\360\000\000z\001I\002\360\000\000I\002J\002\360\000\000J\002K\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340,D\320D\\\320\\]\3602\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\024\220A\330\004\022\220!\330\004\021\220\030\230\022\2306\240\030\250\022\2504\250v\260X\270R\270t\300<\310}\320\\i\320ix\320xy\360\000\000z\001F\002\360\000\000F\002G\002\360\000\000G\002V\002\360\000\000V\002W\002\360\000\000W\002a\002\360\000\000a\002b\002\360\000\000b\002r\002\360\000\000r\002s\002\360\000\000s\002t\002\330\004\025\220Q\220k\240\021\330\004\013\210:\320\025%\240Q\200\001\340DE\360(\000\005\r\210K\220q\230\001\330\004\014\210K""\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300E\310\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260U\270&\300\001\300\031\310+\320UZ\320Z`\320`a\320aj\320jw\320wx\360\000\000y\001E\002\360\000\000E\002F\002\360\000\000F\002U\002\360\000\000U\002`\002\360\000\000`\002g\002\360\000\000g\002m\002\360\000\000m\002n\002\360\000\000n\002o\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\360\004\000D\002E\002\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\021\220\021\330\004\021\220\036\230r\240\026\240x\250r\260\024\260V\2708\3002\300T\310\034\320Ua\320al\320ly\360\000\000z\001H\002\360\000\000H\002I\002\360\000\000I\002U\002\360\000\000U\002V\002\360\000\000V\002e\002\360\000\000e\002f\002\360\000\000f\002g\002\330\004\025\220Q\320\026'\240q\330\004\013\2101\200\001\360\004\000D\002E\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0339\270\022\2701\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021&\240b\250\004\250I\260[\300\004\300F\310!\3109\320T_\320_c\320ci\320ij\320js\320s~\360\000\000\177\001B\002\360\000\000B\002H\002\360\000\000H\002I\002\360\000\000I\002R\002\360\000\000R\002]\002\360\000\000]\002b\002\360\000\000b\002h\002\360\000\000h\002i\002\360\000\000i\002r\002\360\000\000r\002@\003\360\000\000@\003A\003\360\000\000A\003M\003\360\000\000M\003N\003""\360\000\000N\003]\003\360\000\000]\003e\003\360\000\000e\003o\003\360\000\000o\003u\003\360\000\000u\003v\003\360\000\000v\003w\003\330\004\025\220Q\320\026.\250a\330\004\013\2101\200\001\340D\\\320\\]\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\r\210]\230!\2306\240\021\330\004\016\210a\330\004\021\220\026\220r\230\026\230x\240r\250\024\250V\2608\2702\270T\300\034\310[\320Xe\320er\320rs\320s\177\360\000\000@\002A\002\360\000\000A\002P\002\360\000\000P\002Q\002\360\000\000Q\002R\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340D\\\320\\t\320tu\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\r\210]\230!\2306\240\021\330\004\016\210a\330\004\021\220\026\220r\230\026\230x\240r\250\024\250V\2608\2702\270T\300\034\310[\320Xe\320er\360\000\000s\001B\002\360\000\000B\002C\002\360\000\000C\002O\002\360\000\000O\002P\002\360\000\000P\002_\002\360\000\000_\002`\002\360\000\000`\002a\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340-E\320E]\320]^\360*\000\005\016\210[\230\001\230\021\330\004\022\220)\2306\240\021\330\004\r\210V\2206\230\021\230!\330\004\016\210a\330\004\021\220\027\230\002\230&\240\010\250\002\250$\250f\260H\270B\270d\300.\320P]\320]j\320js\320st\360\000\000u\001A\002\360\000\000A\002B\002\360\000\000B\002Q\002\360\000\000Q\002R\002\360\000\000R\002S\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340EF\360(\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\r\210]\230!\2306\240\021\330\004\016\210a\330\004\021\220\027\230\002\230&\240\010\250\002\250$\250f\260H\270B\270d\300,\310k\320Yf\320fg\320gs\320st\360\000\000u\001D\002\360\000\000D\002E\002\360\000\000E\002F\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340,E\300Q\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330""\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\016\210a\330\004\021\220\030\230\022\2306\240\030\250\022\2504\250v\260X\270R\270t\300<\310|\320[g\320gh\320ht\320tu\360\000\000v\001E\002\360\000\000E\002F\002\360\000\000F\002P\002\360\000\000P\002Q\002\360\000\000Q\002R\002\330\004\025\220Q\220k\240\021\330\004\013\210:\220Q\200\001\360\004\000E\002F\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033:\270\"\270A\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021'\240r\250\024\250Y\260k\300\024\300V\3101\310I\320U`\320`d\320dj\320jk\320kt\320t\177\360\000\000@\002C\002\360\000\000C\002I\002\360\000\000I\002J\002\360\000\000J\002S\002\360\000\000S\002^\002\360\000\000^\002c\002\360\000\000c\002i\002\360\000\000i\002j\002\360\000\000j\002s\002\360\000\000s\002A\003\360\000\000A\003B\003\360\000\000B\003N\003\360\000\000N\003O\003\360\000\000O\003^\003\360\000\000^\003f\003\360\000\000f\003p\003\360\000\000p\003v\003\360\000\000v\003w\003\360\000\000w\003x\003\330\004\025\220Q\320\026/\250q\330\004\013\2101\200\001\340E`\320`a\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\r\210]\230!\2306\240\021\330\004\016\210a\330\004\021\220\027\230\002\230&\240\010\250\002\250$\250f\260H\270B\270d\300,\310k\320Yh\320hr\320rs\320s\177\360\000\000@\002A\002\360\000\000A\002P\002\360\000\000P\002Q\002\360\000\000Q\002R\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340E]\320]^\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\r\210]\230!\2306\240\021\330\004\016\210a\330\004\021\220\027\230\002\230&\240\010\250\002\250$""\250f\260H\270B\270d\300,\310k\320Yf\320fr\320rs\320s\177\360\000\000@\002A\002\360\000\000A\002P\002\360\000\000P\002Q\002\360\000\000Q\002R\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340/F\320F^\320^_\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\033\230B\230f\240H\250B\250d\260&\270\010\300\002\300$\300l\320R^\320^k\320kx\320xy\360\000\000z\001F\002\360\000\000F\002G\002\360\000\000G\002V\002\360\000\000V\002W\002\360\000\000W\002X\002\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340.F\320F]\320]t\320tu\3604\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\027\220q\330\004\030\230\001\330\004\027\220q\330\004\021\220\032\2302\230V\2408\2502\250T\260\026\260x\270r\300\024\300\\\320Q^\320^h\320hr\320r{\320{|\360\000\000}\001I\002\360\000\000I\002J\002\360\000\000J\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002m\002\360\000\000m\002n\002\360\000\000n\002B\003\360\000\000B\003C\003\360\000\000C\003D\003\330\004\025\220Q\220m\2401\330\004\013\320\013\036\320\0362\260!\200\001\340.F\300a\360(\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\032\2302\230V\2408\2502\250T\260\026\260x\270r\300\024\300\\\320Q^\320^f\320fg\320gs\320st\360\000\000u\001D\002\360\000\000D\002E\002\360\000\000E\002F\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340/G\320GZ\320Zr\360\000\000s\001F\002\360\000\000F\002`\002\360\000\000`\002a\002\3608\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\024\220A\330\004\022\220!\330\004\021\220\033\230B\230f\240H\250B\250d\260&\270\010\300\002\300$\300l\320R_\320_l\320ly\360\000\000z\001G\002\360\000\000G\002V\002\360\000\000V\002e\002\360\000\000e\002f\002\360\000\000f\002r\002\360\000\000r\002s\002\360\000\000s\002B\003\360\000\000B""\003C\003\360\000\000C\003M\003\360\000\000M\003N\003\360\000\000N\003^\003\360\000\000^\003_\003\360\000\000_\003`\003\330\004\025\220Q\220n\240A\330\004\013\210:\320\025%\240Q\200\001\340GH\360(\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\021\330\004\016\210a\330\004\021\220\027\230\002\230&\240\010\250\002\250$\250f\260H\270B\270d\300,\310m\320[h\320hi\320iu\320uv\360\000\000w\001F\002\360\000\000F\002G\002\360\000\000G\002H\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340GH\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\r\210]\230!\2306\240\021\330\004\023\2201\330\004\021\220\021\330\004\021\220\031\230\"\230F\240(\250\"\250D\260\006\260h\270b\300\004\300L\320P[\320[h\320hi\320iu\320uv\360\000\000w\001F\002\360\000\000F\002G\002\360\000\000G\002V\002\360\000\000V\002W\002\360\000\000W\002X\002\330\004\025\220Q\220l\240!\330\004\013\210?\230!\200\001\340G_\320_`\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\r\210]\230!\2306\240\021\330\004\016\210a\330\004\021\220\031\230\"\230F\240(\250\"\250D\260\006\260h\270b\300\004\300L\320P[\320[h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002T\002\360\000\000T\002U\002\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\360\004\000H\002I\002\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\021\220\021\330\004\021\320\021#\2402\240V\2508\2602\260T\270\026\270x\300r\310\024\310\\\320Ye\320ep\320p}\360\000\000~\001L\002\360\000\000L\002M\002\360\000\000M\002Y\002\360\000""\000Y\002Z\002\360\000\000Z\002i\002\360\000\000i\002j\002\360\000\000j\002k\002\330\004\025\220Q\320\026+\2501\330\004\013\2101\200\001\340Hb\360\000\000c\001B\002\360\000\000B\002f\002\360\000\000f\002F\003\360\000\000F\003i\003\360\000\000i\003N\004\360\000\000N\004o\004\360\000\000o\004p\004\3606\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\r\210]\230!\2306\240\021\330\004\016\210a\330\004\021\220\032\2302\230V\2408\2502\250T\260\026\260x\270r\300\024\300\\\320Q\\\320\\i\320i{\360\000\000|\001S\002\360\000\000S\002f\002\360\000\000f\002|\002\360\000\000|\002T\003\360\000\000T\003h\003\360\000\000h\003\177\003\360\000\000\177\003@\004\360\000\000@\004L\004\360\000\000L\004M\004\360\000\000M\004\\\004\360\000\000\\\004]\004\360\000\000]\004^\004\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340IJ\360(\000\005\r\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210[\230\001\230\021\330\004\022\220)\2306\240\021\330\004\r\210]\230!\2307\240!\330\004\016\210a\330\004\021\220\027\230\002\230&\240\010\250\002\250$\250f\260H\270B\270d\300-\310~\320]j\320jk\320kw\320wx\360\000\000y\001H\002\360\000\000H\002I\002\360\000\000I\002J\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340IJ\360*\000\005\r\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2307\240!\330\004\016\210a\330\004\021\220\030\230\022\2306\240\030\250\022\2504\250v\260X\270R\270t\300=\320P]\320]j\320jk\320kw\320wx\360\000\000y\001H\002\360\000\000H\002I\002\360\000\000I\002J\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340IJ\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210[\230\001\230\021\330\004\022\220)\2306\240\021\330\004\r\210]\230!\2306\240\021\330\004\016\210a\330\004\021\220\030\230\022\2306\240\030\250\022\2504\250v\260X\270R\270t\300<\310~\320]j\320jk\320kw\320wx\360\000\000y""\001H\002\360\000\000H\002I\002\360\000\000I\002J\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340IJ\360(\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\r\210]\230!\2306\240\021\330\004\016\210a\330\004\021\220\033\230B\230f\240H\250B\250d\260&\270\010\300\002\300$\300l\320R]\320]j\320jk\320kw\320wx\360\000\000y\001H\002\360\000\000H\002I\002\360\000\000I\002J\002\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340I_\320_`\360.\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\r\210]\230!\2306\240\021\330\004\023\2201\330\004\022\220!\330\004\021\220\033\230B\230f\240H\250B\250d\260&\270\010\300\002\300$\300l\320R]\320]h\320ht\320tu\360\000\000v\001B\002\360\000\000B\002C\002\360\000\000C\002R\002\360\000\000R\002S\002\360\000\000S\002b\002\360\000\000b\002c\002\360\000\000c\002d\002\330\004\025\220Q\220n\240A\330\004\013\210?\230!\200\001\340JK\3600\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\r\210]\230!\2306\240\021\330\004\027\220q\330\004\030\230\001\330\004\027\220q\330\004\021\220\034\230R\230v\240X\250R\250t\2606\270\030\300\022\3004\300|\320S^\320^k\320kl\320lx\320xy\360\000\000z\001I\002\360\000\000I\002J\002\360\000\000J\002]\002\360\000\000]\002^\002\360\000\000^\002r\002\360\000\000r\002s\002\360\000\000s\002t\002\330\004\025\220Q\220o\240Q\330\004\013\320\013\036\320\0362\260!\200\001\340JK\360(\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\021\330\004\016\210a\330\004\021\220\032\2302\230V\2408\2502\250T\260\026\260x\270r\300\024\300\\\320Q^\320^k\320kl\320lx\320xy\360\000\000z\001I\002\360\000\000I\002J\002\360\000\000J\002K\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340JK\360(\000\005\014\210;\220a\220q""\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\r\210]\230!\2306\240\021\330\004\016\210a\330\004\021\220\034\230R\230v\240X\250R\250t\2606\270\030\300\022\3004\300|\320S^\320^k\320kl\320lx\320xy\360\000\000z\001I\002\360\000\000I\002J\002\360\000\000J\002K\002\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360\004\000J\002K\002\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\021\220\021\330\004\021\320\021%\240R\240v\250X\260R\260t\2706\300\030\310\022\3104\310|\320[g\320gr\320r\177\360\000\000@\002N\002\360\000\000N\002O\002\360\000\000O\002[\002\360\000\000[\002\\\002\360\000\000\\\002k\002\360\000\000k\002l\002\360\000\000l\002m\002\330\004\025\220Q\320\026-\250Q\330\004\013\2101\200\001\340Ja\320ax\320xy\360.\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\016\210k\230\021\230!\330\004\023\2209\230G\2401\330\004\r\210]\230!\2306\240\021\330\004\016\210a\330\004\021\220\030\230\022\2306\240\030\250\022\2504\250v\260X\270R\270t\300<\310\177\320^j\320jv\320v\177\360\000\000@\002A\002\360\000\000A\002M\002\360\000\000M\002N\002\360\000\000N\002]\002\360\000\000]\002^\002\360\000\000^\002_\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340KL\360*\000\005\r\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2307\240!\330\004\016\210a\330\004\021\220\032\2302\230V\2408\2502\250T\260\026\260x\270r\300\024\300]\320R_\320_l\320lm\320my\320yz\360\000\000{\001J\002\360\000\000J\002K\002\360\000\000K\002L\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\360\004\000K\002L\002\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020""\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\021\220\021\330\004\021\320\021&\240b\250\006\250h\260b\270\004\270F\300(\310\"\310D\320P\\\320\\h\320hs\360\000\000t\001A\002\360\000\000A\002O\002\360\000\000O\002P\002\360\000\000P\002\\\002\360\000\000\\\002]\002\360\000\000]\002l\002\360\000\000l\002m\002\360\000\000m\002n\002\330\004\025\220Q\320\026.\250a\330\004\013\2101\200\001\360&\000\005\r\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300F\310!\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260%\260v\270Q\270i\300{\320RX\320X^\320^_\320_h\320hi\320iu\320uv\360\000\000w\001F\002\360\000\000F\002Q\002\360\000\000Q\002X\002\360\000\000X\002^\002\360\000\000^\002_\002\360\000\000_\002`\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300E\310\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260%\260v\270Q\270i\300{\320RW\320W]\320]^\320^g\320gh\320ht\320tu\360\000\000v\001E\002\360\000\000E\002P\002\360\000\000P\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002_\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300E\310\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2605\270""\006\270a\270y\310\013\320SX\320X^\320^_\320_h\320hi\320iu\320uv\360\000\000w\001F\002\360\000\000F\002Q\002\360\000\000Q\002X\002\360\000\000X\002^\002\360\000\000^\002_\002\360\000\000_\002`\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\360(\000\005\r\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210[\230\001\230\021\330\004\022\220)\2306\240\021\330\004\r\210]\230!\2307\240!\330\004\016\210a\330\004\021\220\027\230\002\230&\240\010\250\002\250$\250f\260H\270B\270d\300-\310~\320]^\320^j\320jk\320kz\320z{\320{|\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360*\000\005\r\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2307\240!\330\004\016\210a\330\004\021\220\030\230\022\2306\240\030\250\022\2504\250v\260X\270R\270t\300=\320P]\320]^\320^j\320jk\320kz\320z{\320{|\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\360*\000\005\r\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2307\240!\330\004\016\210a\330\004\021\220\027\230\002\230&\240\010\250\002\250$\250f\260H\270B\270d\300-\310}\320\\]\320]i\320ij\320jy\320yz\320z{\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360\004\000L\002M\002\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\021\220\021\330\004\021\320\021'\240r\250\026\250x\260r\270\024\270V\3008\3102\310T\320Q]\320]i\320it\360\000\000u\001B\002\360\000\000B\002P\002\360\000\000P\002Q\002\360\000\000Q\002]\002\360\000\000]\002^\002\360\000\000^\002m\002\360\000\000m\002n\002\360\000\000n\002o\002\330\004\025\220Q\320\026/\250q\330\004\013\2101\200N\220!\360\016\000\t\014\2101\330\014\020\320\020!\240\021\240!\330\010""\014\320\014\034\230A\330\010\017\210t\2201\200\001\360\014\000\005\022\320\021-\250Q\320.@\300\001\320AQ\320QV\320VW\320WX\330\004\025\220Q\320\0265\260Q\340\004\013\2109\220A\220T\230\021\330\004\013\2104\210q\220\003\2201\220J\230f\240A\330\004\024\220C\220q\230\004\320\034.\250d\260&\270\002\270'\300\024\300Q\340\004\005\330\010\020\220\001\330\010\030\230\t\240\021\240$\240a\330\010\020\220\004\220A\330\010\020\220\t\230\021\230$\230a\330\010\031\230\021\330\010\021\220\021\320\004\035\230Q\360\010\000\t\021\220\004\220A\330\010\025\220[\240\003\2401\330\010\022\220'\230\021\230!\330\010\014\210G\2209\230J\240f\250A\330\014\017\210t\320\023+\2501\250G\2601\330\020\025\220[\240\001\240\026\240q\250\013\2601\330\010\r\320\r\036\230a\330\010\r\210U\220!\320\023#\2404\240q\200\001\360\n\000\005\026\220Q\320\026/\320/B\300!\3001\300A\330\004\r\210Q\330\004\010\210\005\210V\2201\220E\230\021\330\010\016\210g\220Q\220f\230A\230U\240'\250\021\250!\330\004\025\220Q\320\026.\320.@\300\001\300\021\330\004\013\2101\200\001\360\014\000\005\022\320\021*\250!\320+=\270Q\320>N\310e\320ST\320TU\330\004\025\220Q\320\0262\260!\340\004\013\2109\220A\220T\230\021\330\004\013\2104\210q\220\003\2201\220G\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\210t\2208\2301\230H\240A\330\t\021\220\023\220A\330\010\017\210q\340\004\005\330\010\020\220\001\330\010\030\230\013\2401\240D\250\010\260\001\200\001\360\n\000\005\026\220Q\320\026.\320.@\300\001\300\027\310\001\310\021\330\004\020\220\001\330\004\010\210\005\210V\2201\220E\230\021\330\010\021\220\027\230\001\230\026\230q\240\005\240W\250A\250Q\330\004\025\220Q\320\026-\320->\270a\270q\330\004\013\2101\200\001\340$=\270Q\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250^\2701\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300n""\320Tc\320cd\320dp\320pq\360\000\000r\001A\002\360\000\000A\002L\002\360\000\000L\002S\002\360\000\000S\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002[\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340\004\022\220.\240\001\330\004\025\220Q\320\026'\240q\200\001\340(@\320@S\320Sk\320k~\360\000\000\177\001Y\002\360\000\000Y\002Z\002\3608\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\035\270m\310=\320Xe\320et\320tu\330\004\016\320\016\037\230q\240\010\250\001\330\004\024\320\024%\240Q\240h\250a\330\004\022\320\022#\2401\240H\250A\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310-\320Wd\320dq\320q~\360\000\000\177\001N\002\360\000\000N\002]\002\360\000\000]\002^\002\360\000\000^\002j\002\360\000\000j\002k\002\360\000\000k\002z\002\360\000\000z\002E\003\360\000\000E\003L\003\360\000\000L\003R\003\360\000\000R\003S\003\360\000\000S\003^\003\360\000\000^\003i\003\360\000\000i\003v\003\360\000\000v\003|\003\360\000\000|\003}\003\360\000\000}\003H\004\360\000\000H\004S\004\360\000\000S\004^\004\360\000\000^\004d\004\360\000\000d\004e\004\360\000\000e\004f\004\330\004\025\220Q\220n\240A\330\004\013\210:\320\025%\240Q\200\001\340$<\320\320>V\320VW\360*\000\005\016\210[\230\001\230\021\330\004\r\210V\2206\230\021\230!\330\004\r\210]\230!\2308\240:\250V\2601\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270-\300q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260&\270\006\270a\270y\310\r\320Ub\320bk\320kl\320lx\320xy\360\000\000z\001I\002\360\000\000I\002T\002\360\000\000T\002[\002\360\000\000[\002a\002\360\000\000a\002b\002\360\000\000b\002c\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340>V\320VW\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320dq\320q}\320}~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002[\002\360\000\000[\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340'?\320?V\320Vm\320mn\3604\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\r\270Z""\300z\320QR\330\004\027\320\027(\250\001\250\030\260\021\330\004\030\320\030)\250\021\250(\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\035\320V`\320`j\320js\320st\360\000\000u\001A\002\360\000\000A\002B\002\360\000\000B\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002l\002\360\000\000l\002r\002\360\000\000r\002s\002\360\000\000s\002~\002\360\000\000~\002I\003\360\000\000I\003Z\003\360\000\000Z\003`\003\360\000\000`\003a\003\360\000\000a\003l\003\360\000\000l\003w\003\360\000\000w\003G\004\360\000\000G\004M\004\360\000\000M\004N\004\360\000\000N\004O\004\330\004\025\220Q\220m\2401\330\004\013\320\013\036\320\0362\260!\200\001\340(?\320?W\320WX\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\034\270]\310!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310,\320Vc\320cp\320pq\320q}\320}~\360\000\000\177\001N\002\360\000\000N\002Y\002\360\000\000Y\002`\002\360\000\000`\002f\002\360\000\000f\002g\002\360\000\000g\002h\002\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340@X\320XY\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250}\270A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fs\360\000\000t\001A\002\360\000\000A\002B\002\360\000\000B\002N\002\360\000\000N\002O\002\360\000\000O\002^\002\360\000\000^\002i\002\360\000\000i\002p\002\360\000\000p\002v\002\360\000\000v\002w\002\360\000\000w\002x\002\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340>Y\320YZ\360(\000\005\014\210;\220a\220q\330""\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250_\270A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320ds\320s}\320}~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002[\002\360\000\000[\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340YZ\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cn\320ns\320sy\320yz\360\000\000{\001D\002\360\000\000D\002Q\002\360\000\000Q\002R\002\360\000\000R\002^\002\360\000\000^\002_\002\360\000\000_\002n\002\360\000\000n\002y\002\360\000\000y\002@\003\360\000\000@\003F\003\360\000\000F\003G\003\360\000\000G\003H\003\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340Yq\360\000\000r\001I\002\360\000\000I\002J\002\3602\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\034\300Q\330\004\027\320\027(\250\001\250\030\260\021\330\004\030\320\030)\250\021\250(\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cn\320ns\320sy\320yz\360\000\000{\001D\002\360\000\000D\002Q\002\360\000\000Q""\002]\002\360\000\000]\002e\002\360\000\000e\002f\002\360\000\000f\002r\002\360\000\000r\002s\002\360\000\000s\002B\003\360\000\000B\003M\003\360\000\000M\003]\003\360\000\000]\003c\003\360\000\000c\003d\003\360\000\000d\003o\003\360\000\000o\003z\003\360\000\000z\003K\004\360\000\000K\004Q\004\360\000\000Q\004R\004\360\000\000R\004]\004\360\000\000]\004h\004\360\000\000h\004x\004\360\000\000x\004~\004\360\000\000~\004\177\004\360\000\000\177\004@\005\330\004\025\220Q\220i\230q\330\004\013\320\013\036\320\0362\260!\200\001\340Z[\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002R\002\360\000\000R\002S\002\360\000\000S\002_\002\360\000\000_\002`\002\360\000\000`\002o\002\360\000\000o\002z\002\360\000\000z\002A\003\360\000\000A\003G\003\360\000\000G\003H\003\360\000\000H\003I\003\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340Z[\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\023\320\023$\240A\240X\250Q\330\004\023\320\023$\240A\240X\250Q\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002R\002\360\000\000R\002S\002\360\000\000S\002_\002\360\000\000_\002`\002\360\000\000`\002o\002\360\000\000o\002z\002\360\000\000z\002F\003\360\000\000F\003L\003\360\000\000L\003M\003\360\000\000M\003X""\003\360\000\000X\003c\003\360\000\000c\003o\003\360\000\000o\003u\003\360\000\000u\003v\003\360\000\000v\003w\003\330\004\025\220Q\220j\240\001\330\004\013\210?\230!\200\001\340Zr\360\000\000s\001K\002\360\000\000K\002c\002\360\000\000c\002d\002\3600\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270-\300}\320TU\330\004\r\320\r\036\230a\230x\240q\330\004\023\320\023$\240A\240X\250Q\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002R\002\360\000\000R\002_\002\360\000\000_\002l\002\360\000\000l\002{\002\360\000\000{\002|\002\360\000\000|\002H\003\360\000\000H\003I\003\360\000\000I\003X\003\360\000\000X\003c\003\360\000\000c\003i\003\360\000\000i\003o\003\360\000\000o\003p\003\360\000\000p\003{\003\360\000\000{\003F\004\360\000\000F\004R\004\360\000\000R\004X\004\360\000\000X\004Y\004\360\000\000Y\004Z\004\330\004\025\220Q\220j\240\001\330\004\013\2109\220A\200\001\340Zt\360\000\000u\001O\002\360\000\000O\002e\002\360\000\000e\002\177\002\360\000\000\177\002@\003\3606\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250_\270O\310?\320Zi\320ij\330\004\013\320\013\034\230A\230X\240Q\330\004\013\320\013\034\230A\230X\240Q\330\004\013\320\013\034\230A\230X\240Q\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002T\002\360\000\000T\002c\002\360\000\000c\002r\002\360\000\000r\002A\003\360\000\000A\003P\003\360\000""\000P\003Q\003\360\000\000Q\003]\003\360\000\000]\003^\003\360\000\000^\003m\003\360\000\000m\003x\003\360\000\000x\003|\003\360\000\000|\003B\004\360\000\000B\004C\004\360\000\000C\004N\004\360\000\000N\004Y\004\360\000\000Y\004]\004\360\000\000]\004c\004\360\000\000c\004d\004\360\000\000d\004o\004\360\000\000o\004z\004\360\000\000z\004~\004\360\000\000~\004D\005\360\000\000D\005E\005\360\000\000E\005F\005\330\004\025\220Q\220j\240\001\330\004\013\2107\220'\230\021\200\001\340\004\022\220,\230a\330\004\025\220Q\220o\240Q\200\001\340a{\360\000\000|\001V\002\360\000\000V\002l\002\360\000\000l\002F\003\360\000\000F\003G\003\360:\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\025\240a\330\004\013\2101\330\004\013\2101\330\004\013\2101\330\004\021\220\027\230\002\230&\240\010\250\002\250$\250f\260H\270B\270d\300,\310k\320Yf\320fu\360\000\000v\001E\002\360\000\000E\002T\002\360\000\000T\002c\002\360\000\000c\002r\002\360\000\000r\002s\002\360\000\000s\002\177\002\360\000\000\177\002@\003\360\000\000@\003O\003\360\000\000O\003P\003\360\000\000P\003W\003\360\000\000W\003X\003\360\000\000X\003_\003\360\000\000_\003`\003\360\000\000`\003a\003\330\004\025\220Q\220j\240\001\330\004\013\2107\220'\230\021\200\001\340`a\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\025\240a\330\004\016\210a\330\004\021\220\026\220r\230\026\230x\240r\250\024\250V\2608\2702\270T\300\034\310[\320Xe\320er\320rs\320s\177\360\000\000@\002A\002\360\000\000A\002P\002\360\000\000P\002Q\002\360\000\000Q\002R\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340%>\270a\360,\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r""\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250l\270!\330\004\016\320\016\037\230q\240\010\250\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300|\320S_\320_`\320`l\320lm\320m|\360\000\000}\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002V\002\360\000\000V\002a\002\360\000\000a\002l\002\360\000\000l\002s\002\360\000\000s\002y\002\360\000\000y\002z\002\360\000\000z\002{\002\330\004\025\220Q\220k\240\021\330\004\013\210:\220Q\200\001\340ab\360.\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\025\240a\330\004\023\2201\330\004\023\2201\330\004\021\220\027\230\002\230&\240\010\250\002\250$\250f\260H\270B\270d\300,\310k\320Yf\320fs\320st\360\000\000u\001A\002\360\000\000A\002B\002\360\000\000B\002Q\002\360\000\000Q\002R\002\360\000\000R\002a\002\360\000\000a\002b\002\360\000\000b\002c\002\330\004\025\220Q\220j\240\001\330\004\013\210?\230!\200\001\340ab\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\025\240a\330\004\016\210a\330\004\021\220\027\230\002\230&\240\010\250\002\250$\250f\260H\270B\270d\300,\310k\320Yf\320fs\320st\360\000\000u\001A\002\360\000\000A\002B\002\360\000\000B\002Q\002\360\000\000Q\002R\002\360\000\000R\002S\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360(\000\005\014\210;\220a\220q\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3006\310\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QW\320W]\320]^""\320^g\320gh\320ht\320tu\360\000\000v\001E\002\360\000\000E\002P\002\360\000\000P\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002_\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210[\230\001\230\021\330\004\022\220)\2306\240\021\330\004\r\210]\230!\2306\240\021\330\004\016\210a\330\004\021\220\027\230\002\230&\240\010\250\002\250$\250f\260H\270B\270d\300,\310n\320\\]\320]i\320ij\320jy\320yz\320z{\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340\004\022\320\022&\240a\240q\330\004\025\220Q\320\026-\250Q\200\001\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\r\210[\230\001\230\021\330\004\022\220)\2306\240\021\330\004\r\210]\230!\2306\240\025\240a\330\004\016\210a\330\004\021\220\034\230R\230v\240X\250R\250t\2606\270\030\300\022\3004\300|\320S^\320^l\320lm\320my\320yz\360\000\000{\001J\002\360\000\000J\002K\002\360\000\000K\002L\002\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360(\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\r\210]\230!\2306\240\021\330\004\016\210a\330\004\021\220\034\230R\230v\240X\250R\250t\2606\270\030\300\022\3004\300|\320S^\320^_\320_k\320kl\320l{\320{|\320|}\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210[\230\001\230\021\330\004\022\220)\2306\240\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\016\210a\330\004\021\220\030\230\022\2306\240\030\250\022\2504\250v\260X\270R\270t\300<\310{\320Zg\320gu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002T\002\360\000\000T\002U\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340~""\177\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210[\230\001\230\021\330\004\022\220)\2306\240\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\016\210a\330\004\021\220\027\230\002\230&\240\010\250\002\250$\250f\260H\270B\270d\300,\310k\320Yf\320ft\360\000\000u\001B\002\360\000\000B\002C\002\360\000\000C\002O\002\360\000\000O\002P\002\360\000\000P\002_\002\360\000\000_\002`\002\360\000\000`\002a\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210[\230\001\230\021\330\004\022\220)\2306\240\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\016\210a\330\004\021\220\026\220r\230\026\230x\240r\250\024\250V\2608\2702\270T\300\034\310[\320Xe\320es\320st\360\000\000u\001A\002\360\000\000A\002B\002\360\000\000B\002Q\002\360\000\000Q\002R\002\360\000\000R\002S\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\025\240a\330\004\016\210a\330\004\021\220\032\2302\230V\2408\2502\250T\260\026\260x\270r\300\024\300\\\320Q\\\320\\i\320ij\320jv\320vw\360\000\000x\001G\002\360\000\000G\002H\002\360\000\000H\002I\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\025\240a\330\004\016\210a\330\004\021\220\034\230R\230v\240X\250R\250t\2606\270\030\300\022\3004\300|\320S^\320^k\320kl\320lx\320xy\360\000\000z\001I\002\360""\000\000I\002J\002\360\000\000J\002K\002\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\025\240a\330\004\016\210a\330\004\021\220\027\230\002\230&\240\010\250\002\250$\250f\260H\270B\270d\300,\310k\320Yf\320fg\320gs\320st\360\000\000u\001D\002\360\000\000D\002E\002\360\000\000E\002F\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\021\220\021\330\004\021\320\021!\240\022\2406\250\030\260\022\2604\260v\270X\300R\300t\310<\320WX\320Xd\320de\320et\320tu\320uv\330\004\025\220Q\320\026)\250\021\330\004\013\2101\200\001\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\021\220\021\330\004\024\220A\330\004\021\220\035\230b\240\006\240h\250b\260\004\260F\270(\300\"\300D\310\014\320TU\320Ua\320ab\320bq\320qr\320r\177\360\000\000@\002A\002\360\000\000A\002B\002\330\004\025\220Q\320\026&\240a\330\004\013\210=\230\001\200\001\340./\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\r\210Q\330\004\r\210Q\330\004\021\220\032\2302\230V\2408\2502\250T\260\026\260x\270r\300\024\300\\\320Q^\320^_\320_k\320kl\320l{\320{|\360\000\000}\001F\002\360\000\000F\002G\002\360\000\000G\002H\002\330\004\025\220Q\220m\2401\330\004\013\2109\220A\200\001\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\032\2302\230V\2408\2502\250T\260\026\260x\270r\300\024\300\\\320QR\320R^\320^_\320_n\320no\320op\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340./\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021""\220\032\2302\230V\2408\2502\250T\260\026\260x\270r\300\024\300\\\320Q^\320^_\320_k\320kl\320l{\320{|\320|}\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\320\021!\240\022\2406\250\030\260\022\2604\260v\270X\300R\300t\310<\320WX\320Xd\320de\320et\320tu\320uv\330\004\025\220Q\320\026)\250\021\330\004\013\2101\200\001\340,-\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\030\230\022\2306\240\030\250\022\2504\250v\260X\270R\270t\300<\310}\320\\]\320]i\320ij\320jy\320yz\320z{\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\030\230\022\2306\240\030\250\022\2504\250v\260X\270R\270t\300<\310q\320P\\\320\\]\320]l\320lm\320mn\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\022\220!\330\004\021\220\033\230B\230f\240H\250B\250d\260&\270\010\300\002\300$\300l\320RS\320S_\320_`\320`o\320op\320pz\320z{\320{|\330\004\025\220Q\220n\240A\330\004\013\210:\220Q\200\001\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\031\230\"\230F\240(\250\"\250D\260\006\260h\270b\300\004\300L\320PQ\320Q]\320]^\320^m\320mn\320no\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340-.\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\031\230\"\230F\240(\250\"\250D\260\006\260h\270b\300\004\300L\320P]\320]^\320^j\320jk\320kz\320z{\320{|\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340;<\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330""\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\320\021(\250\002\250&\260\010\270\002\270$\270f\300H\310B\310d\320R^\320^k\320kl\320lx\320xy\360\000\000z\001I\002\360\000\000I\002J\002\360\000\000J\002K\002\330\004\025\220Q\320\0260\260\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\037\240\002\240&\250\010\260\002\260$\260f\270H\300B\300d\310,\320VW\320Wc\320cd\320ds\320st\320tu\330\004\025\220Q\320\026(\250\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\027\230\002\230&\240\010\250\002\250$\250f\260H\270B\270d\300,\310a\310|\320[\\\320\\k\320kl\320lm\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340+,\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\027\230\002\230&\240\010\250\002\250$\250f\260H\270B\270d\300,\310m\320[\\\320\\h\320hi\320ix\320xy\320yz\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\026\220r\230\026\230x\240r\250\024\250V\2608\2702\270T\300\034\310Q\310l\320Z[\320[j\320jk\320kl\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\036\230r\240\026\240x\250r\260\024\260V\2708\3002\300T\310\034\320UV\320Vb\320bc\320cr\320rs\320st\330\004\025\220Q\320\026'\240q\330\004\013\2101\200\001\340*+\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\026\220r\230\026\230x\240r\250\024\250V\2608\2702\270T\300\034\310]\320Z[\320[g\320gh\320hw\320wx\320xy\330\004\025\220Q\220i\230q\330\004""\013\2101\200\001\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\021\220\021\330\004\021\320\021#\2402\240V\2508\2602\260T\270\026\270x\300r\310\024\310\\\320Ye\320ep\320p}\320}~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002[\002\360\000\000[\002\\\002\360\000\000\\\002]\002\330\004\025\220Q\320\026+\2501\330\004\013\2101\200\001\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\021\220\021\330\004\021\320\021!\240\022\2406\250\030\260\022\2604\260v\270X\300R\300t\310<\320Wc\320cn\320n{\320{|\360\000\000}\001I\002\360\000\000I\002J\002\360\000\000J\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002[\002\330\004\025\220Q\320\026)\250\021\330\004\013\2101\200\001\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\021\220\021\330\004\021\320\021$\240B\240f\250H\260B\260d\270&\300\010\310\002\310$\310l\320Zf\320fq\320q~\320~\177\360\000\000@\002L\002\360\000\000L\002M\002\360\000\000M\002\\\002\360\000\000\\\002]\002\360\000\000]\002^\002\330\004\025\220Q\320\026,\250A\330\004\013\2101\200\001\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240""\026\240u\250A\330\004\021\220\021\330\004\021\220\033\230B\230f\240H\250B\250d\260&\270\010\300\002\300$\300l\320R^\320^i\320iv\320vw\360\000\000x\001D\002\360\000\000D\002E\002\360\000\000E\002T\002\360\000\000T\002U\002\360\000\000U\002V\002\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\021\220\021\330\004\021\320\021\"\240\"\240F\250(\260\"\260D\270\006\270h\300b\310\004\310L\320Xd\320do\320o|\320|}\360\000\000~\001J\002\360\000\000J\002K\002\360\000\000K\002Z\002\360\000\000Z\002[\002\360\000\000[\002\\\002\330\004\025\220Q\320\026*\250!\330\004\013\2101\200\001\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\021\220\021\330\004\021\320\021%\240R\240v\250X\260R\260t\2706\300\030\310\022\3104\310|\320[g\320gr\320r\177\360\000\000@\002A\002\360\000\000A\002M\002\360\000\000M\002N\002\360\000\000N\002]\002\360\000\000]\002^\002\360\000\000^\002_\002\330\004\025\220Q\320\026-\250Q\330\004\013\2101\200\001\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\016\210a\330\004\021\220\034\230R\230v\240X\250R\250t\2606\270\030\300\022\3004\300|\320S_\320_j\320jw\320wx\360\000\000y\001E\002\360\000\000E\002F\002\360\000\000F\002U\002\360\000\000U\002V\002\360\000\000V\002W\002\330\004\025\220Q\220o\240Q\330\004\013""\2101\200\001\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\016\210a\330\004\021\220\027\230\002\230&\240\010\250\002\250$\250f\260H\270B\270d\300,\310l\320Ze\320er\320rs\320s\177\360\000\000@\002A\002\360\000\000A\002P\002\360\000\000P\002Q\002\360\000\000Q\002R\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\021\220\021\330\004\021\220\035\230b\240\006\240h\250b\260\004\260F\270(\300\"\300D\310\014\320T`\320`k\320kx\320xy\360\000\000z\001F\002\360\000\000F\002G\002\360\000\000G\002V\002\360\000\000V\002W\002\360\000\000W\002X\002\330\004\025\220Q\320\026&\240a\330\004\013\2101\200\001\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\021\220\021\330\004\021\320\021&\240b\250\006\250h\260b\270\004\270F\300(\310\"\310D\320P\\\320\\h\320hs\360\000\000t\001A\002\360\000\000A\002B\002\360\000\000B\002N\002\360\000\000N\002O\002\360\000\000O\002^\002\360\000\000^\002_\002\360\000\000_\002`\002\330\004\025\220Q\320\026.\250a\330\004\013\2101\200\001\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240""\026\240u\250A\330\004\021\220\021\330\004\021\220\037\240\002\240&\250\010\260\002\260$\260f\270H\300B\300d\310,\320Vb\320bm\320mz\320z{\360\000\000|\001H\002\360\000\000H\002I\002\360\000\000I\002X\002\360\000\000X\002Y\002\360\000\000Y\002Z\002\330\004\025\220Q\320\026(\250\001\330\004\013\2101\200\001\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\021\220\021\330\004\021\320\021(\250\002\250&\260\010\270\002\270$\270f\300H\310B\310d\320R^\320^j\320ju\360\000\000v\001C\002\360\000\000C\002D\002\360\000\000D\002P\002\360\000\000P\002Q\002\360\000\000Q\002`\002\360\000\000`\002a\002\360\000\000a\002b\002\330\004\025\220Q\320\0260\260\001\330\004\013\2101\200\001\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\021\220\021\330\004\021\220\036\230r\240\026\240x\250r\260\024\260V\2708\3002\300T\310\034\320Ua\320al\320ly\320yz\360\000\000{\001G\002\360\000\000G\002H\002\360\000\000H\002W\002\360\000\000W\002X\002\360\000\000X\002Y\002\330\004\025\220Q\320\026'\240q\330\004\013\2101\200\001\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\021\220\021\330\004\021\320\021'\240r\250\026\250x\260r\270\024\270V\3008\3102\310T\320Q]\320]i\320it\360\000\000u\001B\002\360\000\000B\002C\002\360\000\000C\002O\002\360\000\000O\002P\002\360\000\000P\002_\002\360\000\000_\002`""\002\360\000\000`\002a\002\330\004\025\220Q\320\026/\250q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320ij\320jv\320vw\360\000\000x\001G\002\360\000\000G\002R\002\360\000\000R\002Y\002\360\000\000Y\002_\002\360\000\000_\002`\002\360\000\000`\002a\002\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\340>?\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320dq\320qr\320r~\320~\177\360\000\000@\002O\002\360\000\000O\002Z\002\360\000\000Z\002a\002\360\000\000a\002g\002\360\000\000g\002h\002\360\000\000h\002i\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X^\320^_\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320it\320tz\360\000\000{\001A\002\360\000\000A\002B\002\360\000\000B\002K\002\360\000\000K\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002h\002\360\000\000h\002s\002\360\000\000s\002z\002\360\000\000z\002@\003\360\000\000@\003A\003\360\000\000A\003B\003\330\004\025\220Q\220o\240Q\330\004\013\2101\200""\001\340_`\360.\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\030\320\030)\250\021\250(\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320it\320ty\320y\177\360\000\000@\002A\002\360\000\000A\002J\002\360\000\000J\002W\002\360\000\000W\002X\002\360\000\000X\002d\002\360\000\000d\002e\002\360\000\000e\002t\002\360\000\000t\002\177\002\360\000\000\177\002O\003\360\000\000O\003U\003\360\000\000U\003V\003\360\000\000V\003a\003\360\000\000a\003l\003\360\000\000l\003}\003\360\000\000}\003C\004\360\000\000C\004D\004\360\000\000D\004O\004\360\000\000O\004Z\004\360\000\000Z\004j\004\360\000\000j\004p\004\360\000\000p\004q\004\360\000\000q\004r\004\330\004\025\220Q\220o\240Q\330\004\013\320\013\036\320\0362\260!\200\001\340_`\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320it\320ty\320y\177\360\000\000@\002A\002\360\000\000A\002J\002\360\000\000J\002W\002\360\000\000W\002X\002\360\000\000X\002d\002\360\000\000d\002e\002\360\000\000e\002t\002\360\000\000t\002\177\002\360\000\000\177\002F\003\360\000\000F\003L\003\360\000\000L\003M\003\360\000\000M\003N\003\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\340^_\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!""\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310+\320UX\320X^\320^_\320_h\320hs\320sx\320x~\320~\177\360\000\000@\002I\002\360\000\000I\002V\002\360\000\000V\002W\002\360\000\000W\002c\002\360\000\000c\002d\002\360\000\000d\002s\002\360\000\000s\002~\002\360\000\000~\002E\003\360\000\000E\003K\003\360\000\000K\003L\003\360\000\000L\003M\003\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340[\\\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300{\320RU\320U[\320[\\\320\\e\320ep\320pu\320u{\320{|\360\000\000}\001F\002\360\000\000F\002S\002\360\000\000S\002T\002\360\000\000T\002`\002\360\000\000`\002a\002\360\000\000a\002p\002\360\000\000p\002{\002\360\000\000{\002B\003\360\000\000B\003H\003\360\000\000H\003I\003\360\000\000I\003J\003\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gr\320rw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002I\002\360\000\000I\002U\002\360\000\000U\002V\002\360\000\000V\002e\002\360\000\000e\002p\002\360\000""\000p\002w\002\360\000\000w\002}\002\360\000\000}\002~\002\360\000\000~\002\177\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320it\320ty\320y\177\360\000\000@\002A\002\360\000\000A\002J\002\360\000\000J\002K\002\360\000\000K\002W\002\360\000\000W\002X\002\360\000\000X\002g\002\360\000\000g\002r\002\360\000\000r\002y\002\360\000\000y\002\177\002\360\000\000\177\002@\003\360\000\000@\003A\003\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\340]^\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\020\320\020!\240\021\240(\250!\330\004\021\320\021\"\240!\2408\2501\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gr\320rw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002U\002\360\000\000U\002V\002\360\000\000V\002b\002\360\000\000b\002c\002\360\000\000c\002r\002\360\000\000r\002}\002\360\000\000}\002F\003\360\000\000F\003L\003\360\000\000L\003M\003\360\000\000M\003X\003\360\000\000X\003c\003\360\000\000c\003m\003\360\000\000m\003s\003\360\000\000s\003t\003\360\000\000t\003u\003\330\004\025\220Q\220m\2401\330\004\013\210<\220q\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004""\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002F\002\360\000\000F\002R\002\360\000\000R\002S\002\360\000\000S\002b\002\360\000\000b\002m\002\360\000\000m\002t\002\360\000\000t\002z\002\360\000\000z\002{\002\360\000\000{\002|\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340\\]\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fq\320qv\320v|\320|}\360\000\000~\001G\002\360\000\000G\002T\002\360\000\000T\002U\002\360\000\000U\002a\002\360\000\000a\002b\002\360\000\000b\002q\002\360\000\000q\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003J\003\360\000\000J\003K\003\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]e\320eo\320ou\320uv\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cn\320ns\320sy\320yz\360\000\000{\001D\002\360\000\000D\002O\002\360\000\000O\002U\002\360\000\000U\002[\002\360\000\000[\002\\\002\360\000\000\\\002e\002\360\000\000e\002f\002\360\000\000f\002r\002\360\000\000r\002s\002\360\000\000s\002B\003\360\000\000B""\003M\003\360\000\000M\003T\003\360\000\000T\003Z\003\360\000\000Z\003[\003\360\000\000[\003\\\003\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]e\320eo\320ou\320uv\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300{\320RU\320U[\320[\\\320\\e\320ep\320pu\320u{\320{|\360\000\000}\001F\002\360\000\000F\002Q\002\360\000\000Q\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002g\002\360\000\000g\002h\002\360\000\000h\002t\002\360\000\000t\002u\002\360\000\000u\002D\003\360\000\000D\003O\003\360\000\000O\003V\003\360\000\000V\003\\\003\360\000\000\\\003]\003\360\000\000]\003^\003\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340)*\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310=\320XY\320Ye\320ef\320fu\320u}\360\000\000~\001H\002\360\000\000H\002N\002\360\000\000N\002O\002\360\000\000O\002P\002\330\004\025\220Q\220o\240Q\330\004\026\220f\230J\240a\330\004\010\210\007\320\017\037\230q\330\010\027\220q\230\006\230a\330\004\013\2101\200\001\340)*\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310=\320XY\320Ye\320ef\320fu\360\000\000v\001A\002\360\000\000A\002H""\002\360\000\000H\002N\002\360\000\000N\002O\002\360\000\000O\002P\002\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\340*+\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0331\260\022\2601\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\035\230b\240\004\240I\250[\270\004\270F\300!\3009\310M\320YZ\320Zf\320fg\320gv\360\000\000w\001B\002\360\000\000B\002I\002\360\000\000I\002O\002\360\000\000O\002P\002\360\000\000P\002Q\002\330\004\025\220Q\320\026&\240a\330\004\013\2101\200\001\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0331\260\021\330\004\021\320\021\"\240!\2408\2501\330\004\024\320\024%\240Q\240h\250a\330\004\021\220\035\230b\240\004\240I\250[\270\004\270F\300!\3009\310A\310\\\320YZ\320Zi\320it\320t~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002i\002\360\000\000i\002o\002\360\000\000o\002p\002\360\000\000p\002q\002\330\004\025\220Q\320\026&\240a\330\004\013\210=\230\001\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300a\300|\320ST\320Tc\320cn\320nu\320u{\320{|\320|}\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340$%\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300m\320ST\320T`\320`a\320ap\320p{""\360\000\000|\001C\002\360\000\000C\002I\002\360\000\000I\002J\002\360\000\000J\002K\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310Q\310l\320Z[\320[j\320ju\320u|\360\000\000}\001C\002\360\000\000C\002D\002\360\000\000D\002E\002\330\004\025\220Q\320\026'\240q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0333\2601\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\037\240\002\240$\240i\250{\270$\270f\300A\300Y\310a\310|\320[\\\320\\k\320kv\320v}\360\000\000~\001D\002\360\000\000D\002E\002\360\000\000E\002F\002\330\004\025\220Q\320\026(\250\001\330\004\013\2101\200\001\340,-\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0333\2602\260Q\330\004\020\220\016\230a\230x\240q\330\004\020\220\016\230a\230x\240q\330\004\021\220\037\240\002\240$\240i\250{\270$\270f\300A\300Y\310m\320[\\\320\\h\320hi\320ix\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002P\002\360\000\000P\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002d\002\360\000\000d\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\330\004\025\220Q\320\026(\250\001\330\004\025\220V\2309\240A\330\004\010\210\007\320\017\037\230q\330\010\026\220a\220v\230Q\330\004\025\220V\2309\240A\330\004\010\210\007\320\017\037\230q\330\010\026\220a\220v\230Q\330\004\013\210<\220q\200\001\340,-\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:""\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0333\2602\260Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\037\240\002\240$\240i\250{\270$\270f\300A\300Y\310m\320[\\\320\\h\320hi\320ix\360\000\000y\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002R\002\360\000\000R\002S\002\330\004\025\220Q\320\026(\250\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0334\260A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\320\021!\240\022\2404\240y\260\013\2704\270v\300Q\300i\310q\320P\\\320\\]\320]l\320lw\320w~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002G\002\330\004\025\220Q\320\026)\250\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0334\260A\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021!\240\022\2404\240y\260\013\2704\270v\300Q\300i\310q\320P\\\320\\]\320]l\320lt\320t~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002G\002\330\004\025\220Q\320\026)\250\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300q\310\014\320TU\320Ud\320do\320ov\320v|\320|}\320}~\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340#$\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250A\330\004\016\320\016\037\230q\240\010\250\001\330""\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300]\320RS\320S_\320_`\320`o\320oz\360\000\000{\001B\002\360\000\000B\002H\002\360\000\000H\002I\002\360\000\000I\002J\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340%&\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300}\320TU\320Ua\320ab\320bq\320q|\360\000\000}\001D\002\360\000\000D\002J\002\360\000\000J\002K\002\360\000\000K\002L\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\001\310\034\320UV\320Ve\320ep\320pw\320w}\320}~\320~\177\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340&'\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\r\320UV\320Vb\320bc\320cr\320r}\360\000\000~\001E\002\360\000\000E\002K\002\360\000\000K\002L\002\360\000\000L\002M\002\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\021\310,\320VW\320Wf\320fq\320qx\320x~\320~\177\360\000""\000@\002A\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340'(\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\r\320\r\036\230a\230x\240q\330\004\r\320\r\036\230a\230x\240q\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\035\320VW\320Wc\320cd\320ds\320s~\360\000\000\177\001E\002\360\000\000E\002K\002\360\000\000K\002L\002\360\000\000L\002W\002\360\000\000W\002b\002\360\000\000b\002h\002\360\000\000h\002n\002\360\000\000n\002o\002\360\000\000o\002p\002\330\004\025\220Q\220m\2401\330\004\013\2109\220A\200\001\340'(\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\035\320VW\320Wc\320cd\320ds\320s~\360\000\000\177\001F\002\360\000\000F\002L\002\360\000\000L\002M\002\360\000\000M\002N\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250q\330\004\016\320\016\037\230q\240\010\250\001\330\004\022\320\022#\2401\240H\250A\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310!\310<\320WX\320Xg\320gr\320ry\320y\177\360\000\000@\002A\002\360\000\000A\002L\002\360\000\000L\002W\002\360\000\000W\002b\002\360\000\000b\002h\002\360\000\000h\002i\002\360\000\000i\002j\002\330\004\025\220Q\220n\240A\330\004\013\210:\220Q\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250!\330\004\016\320""\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300Q\300l\320RS\320Sb\320bm\320mt\320tz\320z{\320{|\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340()\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310-\320WX\320Xd\320de\320et\320t\177\360\000\000@\002G\002\360\000\000G\002M\002\360\000\000M\002N\002\360\000\000N\002O\002\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340()\360.\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\024\320\024%\240Q\240h\250a\330\004\022\320\022#\2401\240H\250A\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310/\320YZ\320Zf\320fg\320gv\360\000\000w\001B\002\360\000\000B\002I\002\360\000\000I\002O\002\360\000\000O\002P\002\360\000\000P\002[\002\360\000\000[\002f\002\360\000\000f\002s\002\360\000\000s\002y\002\360\000\000y\002z\002\360\000\000z\002E\003\360\000\000E\003P\003\360\000\000P\003[\003\360\000\000[\003a\003\360\000\000a\003b\003\360\000\000b\003c\003\330\004\025\220Q\220n\240A\330\004\013\210:\320\025%\240Q\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VZ\320Z`\320`a\320aj\320ju\320ux\320x~""\320~\177\360\000\000@\002I\002\360\000\000I\002T\002\360\000\000T\002Y\002\360\000\000Y\002_\002\360\000\000_\002`\002\360\000\000`\002i\002\360\000\000i\002j\002\360\000\000j\002v\002\360\000\000v\002w\002\360\000\000w\002F\003\360\000\000F\003Q\003\360\000\000Q\003X\003\360\000\000X\003^\003\360\000\000^\003_\003\360\000\000_\003`\003\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0334\260A\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021!\240\022\2404\240y\260\013\2704\270v\300Q\300i\310{\320Z^\320^d\320de\320en\320ny\320y|\360\000\000}\001C\002\360\000\000C\002D\002\360\000\000D\002M\002\360\000\000M\002X\002\360\000\000X\002]\002\360\000\000]\002c\002\360\000\000c\002d\002\360\000\000d\002m\002\360\000\000m\002n\002\360\000\000n\002z\002\360\000\000z\002{\002\360\000\000{\002J\003\360\000\000J\003R\003\360\000\000R\003\\\003\360\000\000\\\003b\003\360\000\000b\003c\003\360\000\000c\003d\003\330\004\025\220Q\320\026)\250\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033:\270!\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021'\240r\250\024\250Y\260k\300\024\300V\3101\310I\320U`\320`d\320dj\320jk\320kt\320t\177\360\000\000@\002C\002\360\000\000C\002I\002\360\000\000I\002J\002\360\000\000J\002S\002\360\000\000S\002^\002\360\000\000^\002c\002\360\000\000c\002i\002\360\000\000i\002j\002\360\000\000j\002s\002\360\000""\000s\002t\002\360\000\000t\002@\003\360\000\000@\003A\003\360\000\000A\003P\003\360\000\000P\003X\003\360\000\000X\003b\003\360\000\000b\003h\003\360\000\000h\003i\003\360\000\000i\003j\003\330\004\025\220Q\320\026/\250q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033;\2701\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021(\250\002\250$\250i\260{\300$\300f\310A\310Y\320Va\320ae\320ek\320kl\320lu\360\000\000v\001A\002\360\000\000A\002D\002\360\000\000D\002J\002\360\000\000J\002K\002\360\000\000K\002T\002\360\000\000T\002_\002\360\000\000_\002d\002\360\000\000d\002j\002\360\000\000j\002k\002\360\000\000k\002t\002\360\000\000t\002u\002\360\000\000u\002A\003\360\000\000A\003B\003\360\000\000B\003Q\003\360\000\000Q\003Y\003\360\000\000Y\003c\003\360\000\000c\003i\003\360\000\000i\003j\003\360\000\000j\003k\003\330\004\025\220Q\320\0260\260\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250q\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310+\320UY\320Y_\320_`\320`i\320it\320tw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002S\002\360\000\000S\002X\002\360\000\000X\002^\002\360\000\000^\002_\002\360\000\000_\002h\002\360\000\000h\002i\002\360\000\000i\002u\002\360\000\000u\002v\002\360\000\000v\002E\003\360\000\000E\003M\003\360\000\000M\003W\003\360\000\000W\003]\003\360\000\000]\003^\003""\360\000\000^\003_\003\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0335\260Q\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021\"\240\"\240D\250\t\260\033\270D\300\006\300a\300y\320P[\320[_\320_e\320ef\320fo\320oz\320z}\360\000\000~\001D\002\360\000\000D\002E\002\360\000\000E\002N\002\360\000\000N\002Y\002\360\000\000Y\002^\002\360\000\000^\002d\002\360\000\000d\002e\002\360\000\000e\002n\002\360\000\000n\002o\002\360\000\000o\002{\002\360\000\000{\002|\002\360\000\000|\002K\003\360\000\000K\003S\003\360\000\000S\003]\003\360\000\000]\003c\003\360\000\000c\003d\003\360\000\000d\003e\003\330\004\025\220Q\320\026*\250!\330\004\013\2101\200\001\340|}\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260\"\260A\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310[\320X\\\320\\b\320bc\320cl\320lw\320wz\360\000\000{\001A\002\360\000\000A\002B\002\360\000\000B\002K\002\360\000\000K\002V\002\360\000\000V\002[\002\360\000\000[\002a\002\360\000\000a\002b\002\360\000\000b\002k\002\360\000\000k\002y\002\360\000\000y\002z\002\360\000\000z\002F\003\360\000\000F\003G\003\360\000\000G\003V\003\360\000\000V\003^\003\360\000\000^\003h\003\360\000\000h\003n\003\360\000\000n\003o\003\360\000\000o\003p\003\330\004\025\220Q\320\026'\240q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q""\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QU\320U[\320[\\\320\\e\320ep\320ps\320sy\320yz\360\000\000{\001D\002\360\000\000D\002O\002\360\000\000O\002T\002\360\000\000T\002Z\002\360\000\000Z\002[\002\360\000\000[\002d\002\360\000\000d\002e\002\360\000\000e\002q\002\360\000\000q\002r\002\360\000\000r\002A\003\360\000\000A\003L\003\360\000\000L\003S\003\360\000\000S\003Y\003\360\000\000Y\003Z\003\360\000\000Z\003[\003\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0331\260\021\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\035\230b\240\004\240I\250[\270\004\270F\300!\3009\310K\320W[\320[a\320ab\320bk\320kv\320vy\320y\177\360\000\000@\002A\002\360\000\000A\002J\002\360\000\000J\002U\002\360\000\000U\002Z\002\360\000\000Z\002`\002\360\000\000`\002a\002\360\000\000a\002j\002\360\000\000j\002k\002\360\000\000k\002w\002\360\000\000w\002x\002\360\000\000x\002G\003\360\000\000G\003O\003\360\000\000O\003Y\003\360\000\000Y\003_\003\360\000\000_\003`\003\360\000\000`\003a\003\330\004\025\220Q\320\026&\240a\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U""\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0336\260a\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021#\2402\240T\250\031\260+\270T\300\026\300q\310\t\320Q\\\320\\`\320`f\320fg\320gp\320p{\320{~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002O\002\360\000\000O\002Z\002\360\000\000Z\002_\002\360\000\000_\002e\002\360\000\000e\002f\002\360\000\000f\002o\002\360\000\000o\002p\002\360\000\000p\002|\002\360\000\000|\002}\002\360\000\000}\002L\003\360\000\000L\003T\003\360\000\000T\003^\003\360\000\000^\003d\003\360\000\000d\003e\003\360\000\000e\003f\003\330\004\025\220Q\320\026+\2501\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260!\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310[\320X\\\320\\b\320bc\320cl\320lw\320wz\360\000\000{\001A\002\360\000\000A\002B\002\360\000\000B\002K\002\360\000\000K\002V\002\360\000\000V\002[\002\360\000\000[\002a\002\360\000\000a\002b\002\360\000\000b\002k\002\360\000\000k\002l\002\360\000\000l\002x\002\360\000\000x\002y\002\360\000\000y\002H\003\360\000\000H\003P\003\360\000\000P\003Z\003\360\000\000Z\003`\003\360\000\000`\003a\003\360\000\000a\003b\003\330\004\025\220Q\320\026'\240q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0333\2601\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\037\240\002\240$\240i\250{\270$\270f\300A""\300Y\310k\320Y]\320]c\320cd\320dm\320mx\320x{\360\000\000|\001B\002\360\000\000B\002C\002\360\000\000C\002L\002\360\000\000L\002W\002\360\000\000W\002\\\002\360\000\000\\\002b\002\360\000\000b\002c\002\360\000\000c\002l\002\360\000\000l\002m\002\360\000\000m\002y\002\360\000\000y\002z\002\360\000\000z\002I\003\360\000\000I\003Q\003\360\000\000Q\003[\003\360\000\000[\003a\003\360\000\000a\003b\003\360\000\000b\003c\003\330\004\025\220Q\320\026(\250\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0338\270\001\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021%\240R\240t\2509\260K\270t\3006\310\021\310)\320S^\320^b\320bh\320hi\320ir\320r}\360\000\000~\001A\002\360\000\000A\002G\002\360\000\000G\002H\002\360\000\000H\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002a\002\360\000\000a\002g\002\360\000\000g\002h\002\360\000\000h\002q\002\360\000\000q\002r\002\360\000\000r\002~\002\360\000\000~\002\177\002\360\000\000\177\002N\003\360\000\000N\003V\003\360\000\000V\003`\003\360\000\000`\003f\003\360\000\000f\003g\003\360\000\000g\003h\003\330\004\025\220Q\320\026-\250Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0339\270\021\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021&\240b\250\004\250I\260[\300\004\300F\310!\3109\320T_\320_c\320ci\320ij\320js\320s~\360\000\000\177\001B\002\360\000\000B\002H\002\360\000\000H\002I\002\360\000\000I\002R\002\360""\000\000R\002]\002\360\000\000]\002b\002\360\000\000b\002h\002\360\000\000h\002i\002\360\000\000i\002r\002\360\000\000r\002s\002\360\000\000s\002\177\002\360\000\000\177\002@\003\360\000\000@\003O\003\360\000\000O\003W\003\360\000\000W\003a\003\360\000\000a\003g\003\360\000\000g\003h\003\360\000\000h\003i\003\330\004\025\220Q\320\026.\250a\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0337\260q\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021$\240B\240d\250)\260;\270d\300&\310\001\310\031\320R]\320]a\320ag\320gh\320hq\320q|\320|\177\360\000\000@\002F\002\360\000\000F\002G\002\360\000\000G\002P\002\360\000\000P\002[\002\360\000\000[\002`\002\360\000\000`\002f\002\360\000\000f\002g\002\360\000\000g\002p\002\360\000\000p\002q\002\360\000\000q\002}\002\360\000\000}\002~\002\360\000\000~\002M\003\360\000\000M\003U\003\360\000\000U\003_\003\360\000\000_\003e\003\360\000\000e\003f\003\360\000\000f\003g\003\330\004\025\220Q\320\026,\250A\330\004\013\2101\200\001\360\006\000\005\017\320\016\036\230a\230q\330\004\007\200x\210s\220!\330\010\t\330\004\t\210\021\330\004\022\320\022'\240q\250\004\250A\330\004\025\220Q\320\026.\250a\200\001\360\006\000\005\017\320\016\036\230a\230q\330\004\007\200x\210s\220!\330\010\017\210q\330\004\t\210\021\330\004\020\320\020%\240Q\240a\330\004\013\2101\200\001\340ay\360\000\000z\001R\002\360\000\000R\002j\002\360\000\000j\002k\002\3604\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210Q\330\004\023\2201\330\004\021\220\027\230\002\230&\240\010\250\002\250$\250f""\260H\270B\270d\300,\310k\320Yf\320fs\360\000\000t\001A\002\360\000\000A\002N\002\360\000\000N\002]\002\360\000\000]\002^\002\360\000\000^\002j\002\360\000\000j\002k\002\360\000\000k\002z\002\360\000\000z\002{\002\360\000\000{\002D\003\360\000\000D\003E\003\360\000\000E\003F\003\330\004\025\220Q\220j\240\001\330\004\013\2109\220A\200\001\340ay\320yz\360,\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260\"\260M\300\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310[\320X[\320[a\320ab\320bk\320kv\320v{\360\000\000|\001B\002\360\000\000B\002C\002\360\000\000C\002L\002\360\000\000L\002Y\002\360\000\000Y\002f\002\360\000\000f\002g\002\360\000\000g\002s\002\360\000\000s\002t\002\360\000\000t\002C\003\360\000\000C\003N\003\360\000\000N\003U\003\360\000\000U\003[\003\360\000\000[\003\\\003\360\000\000\\\003g\003\360\000\000g\003o\003\360\000\000o\003y\003\360\000\000y\003\177\003\360\000\000\177\003@\004\360\000\000@\004A\004\330\004\025\220Q\320\026'\240q\330\004\013\210:\220Q\200\001\340bc\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\025\240a\330\004\016\210a\330\004\021\220\030\230\022\2306\240\030\250\022\2504\250v\260X\270R\270t\300<\310{\320Zg\320gt\320tu\360\000\000v\001B\002\360\000\000B\002C\002\360\000\000C\002R\002\360\000\000R\002S\002\360\000\000S\002T\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340c}\360\000\000~\001X\002\360\000\000X\002m\002\360\000\000m\002G\003\360\000\000G\003H\003\3606\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004""\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\025\240a\330\004\017\210q\330\004\017\210q\330\004\021\220\031\230\"\230F\240(\250\"\250D\260\006\260h\270b\300\004\300L\320P[\320[h\320hw\360\000\000x\001G\002\360\000\000G\002V\002\360\000\000V\002e\002\360\000\000e\002t\002\360\000\000t\002u\002\360\000\000u\002A\003\360\000\000A\003B\003\360\000\000B\003Q\003\360\000\000Q\003R\003\360\000\000R\003]\003\360\000\000]\003^\003\360\000\000^\003_\003\330\004\025\220Q\220l\240!\330\004\013\210;\220a\200\001\340cd\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\025\240a\330\004\016\210a\330\004\021\220\031\230\"\230F\240(\250\"\250D\260\006\260h\270b\300\004\300L\320P[\320[h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002T\002\360\000\000T\002U\002\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340d}\360\000\000~\001W\002\360\000\000W\002X\002\360.\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\025\240a\330\004\016\210a\330\004\021\220\032\2302\230V\2408\2502\250T\260\026\260x\270r\300\024\300\\\320Q\\\320\\i\320iw\360\000\000x\001F\002\360\000\000F\002T\002\360\000\000T\002U\002\360\000\000U\002a\002\360\000\000a\002b\002\360\000\000b\002q\002\360\000\000q\002r\002\360\000\000r\002s\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340d~\360\000\000\177\001Y\002\360\000\000Y\002Z\002\3602\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\025\240a\330\004\017\210q\330""\004\017\210q\330\004\021\220\032\2302\230V\2408\2502\250T\260\026\260x\270r\300\024\300\\\320Q\\\320\\i\320ix\360\000\000y\001H\002\360\000\000H\002W\002\360\000\000W\002X\002\360\000\000X\002d\002\360\000\000d\002e\002\360\000\000e\002t\002\360\000\000t\002u\002\360\000\000u\002@\003\360\000\000@\003A\003\360\000\000A\003B\003\330\004\025\220Q\220m\2401\330\004\013\210;\220a\200\001\340de\360.\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\025\240a\330\004\020\220\001\330\004\021\220\021\330\004\021\220\032\2302\230V\2408\2502\250T\260\026\260x\270r\300\024\300\\\320Q\\\320\\i\320iv\320vw\360\000\000x\001D\002\360\000\000D\002E\002\360\000\000E\002T\002\360\000\000T\002U\002\360\000\000U\002a\002\360\000\000a\002b\002\360\000\000b\002c\002\330\004\025\220Q\220m\2401\330\004\013\210<\220q\200\001\340ef\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\025\240a\330\004\016\210a\330\004\021\220\033\230B\230f\240H\250B\250d\260&\270\010\300\002\300$\300l\320R]\320]j\320jw\320wx\360\000\000y\001E\002\360\000\000E\002F\002\360\000\000F\002U\002\360\000\000U\002V\002\360\000\000V\002W\002\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340fg\3602\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\025\240a\330\004\027\220q\330\004\030\230\001\330\004\027\220q\330\004\021\220\034\230R\230v\240X\250R\250t\2606\270\030\300\022\3004\300|\320S^\320^k\320kx\320xy\360\000\000z\001F\002\360\000\000F\002G\002\360\000\000G\002V\002\360\000\000V\002W\002\360\000\000W\002j\002\360\000\000j\002k\002\360\000\000k\002\177\002""\360\000\000\177\002@\003\360\000\000@\003A\003\330\004\025\220Q\220o\240Q\330\004\013\320\013\036\320\0362\260!\200\001\340fg\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\025\240a\330\004\016\210a\330\004\021\220\034\230R\230v\240X\250R\250t\2606\270\030\300\022\3004\300|\320S^\320^k\320kx\320xy\360\000\000z\001F\002\360\000\000F\002G\002\360\000\000G\002V\002\360\000\000V\002W\002\360\000\000W\002X\002\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360\004\000i\001A\002\360\000\000A\002B\002\3600\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\025\240a\330\004\016\210a\330\004\021\220\021\330\004\021\220\036\230r\240\026\240x\250r\260\024\260V\2708\3002\300T\310\034\320U`\320`m\320mz\360\000\000{\001H\002\360\000\000H\002I\002\360\000\000I\002U\002\360\000\000U\002V\002\360\000\000V\002e\002\360\000\000e\002f\002\360\000\000f\002p\002\360\000\000p\002q\002\360\000\000q\002r\002\330\004\025\220Q\320\026'\240q\330\004\013\210:\220Q\200\001\340\004\022\320\022'\240q\250\r\260[\300\013\3101\330\004\025\220Q\320\026.\250a\200\001\360\014\000\005\020\210q\330\004\020\220\001\220\031\230!\2309\240A\330\004\020\220\001\220\021\330\004\013\2101\330\004\010\210\007\210q\320\0201\260\022\2601\340\004\022\220)\2301\230A\330\004\010\210\007\210q\220\001\330\004\010\210\016\220a\330\010\020\220\013\2301\230A\330\010\013\2104\210z\230\021\230'\240\021\330\014\024\220A\330\010\014\210G\2201\320\024$\240L\260\001\340\004\r\210Y\220a\220q\330\004\007\200q\330\010\014\210G\2201\220A\330\004\010\210\t\220\021\330\010\014\210G\2201\320\024$\240G\2506\260\021\260!\330\010\021\220\027\230\001\230\035\240g\250V\2601\260A\330\010\020\220\001\220\031\230&\240\001\240\021""\330\010\013\2105\220\t\230\021\230!\330\014\020\220\002\220%\220s\230%\230q\240\001\240\024\240R\240t\2507\260\"\260G\2701\270F\300!\3001\340\004\016\210i\220q\230\001\330\004\022\320\022,\250D\260\t\270\021\320:L\310C\310q\330\004\010\210\007\210q\220\001\330\004\010\210\n\220!\330\010\013\2107\220#\220Z\230t\2401\330\014\025\220Q\330\010\014\210G\2201\220I\230R\230q\340\004\r\210W\220A\220T\230\025\230a\230q\330\004\r\210W\220A\220Q\330\004\010\210\007\210q\220\003\2202\220U\230!\2301\330\004\024\220D\230\005\230Q\230a\330\004\013\210:\220Q\200\001\340'?\270q\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\r\270Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\035\320V^\320^_\320_k\320kl\320l{\360\000\000|\001G\002\360\000\000G\002N\002\360\000\000N\002T\002\360\000\000T\002U\002\360\000\000U\002V\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\360\020\000\005\010\200u\210B\210a\330\010\017\210q\330\004\013\2101\210A\330\014\020\220\005\220_\240F\250!\320+<\270F\300!\330\014\017\210t\2202\220Q\200\001\330\004\007\200u\210C\210q\330\010\020\220\005\220Q\330\014\r\330\020\026\320\026+\2501\250A\330\014 \240\013\2501\330\010\017\210q\330\004\013\320\013\034\230A\230Q\200\001\340]v\360\000\000w\001P\002\360\000\000P\002Q\002\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\016\270n\310A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gr\320rw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002V\002\360\000\000V\002d""\002\360\000\000d\002r\002\360\000\000r\002s\002\360\000\000s\002\177\002\360\000\000\177\002@\003\360\000\000@\003O\003\360\000\000O\003Z\003\360\000\000Z\003a\003\360\000\000a\003g\003\360\000\000g\003h\003\360\000\000h\003i\003\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340\\v\360\000\000w\001Q\002\360\000\000Q\002f\002\360\000\000f\002@\003\360\000\000@\003A\003\3602\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250\177\270o\310_\320\\k\320kl\330\004\017\320\017 \240\001\240\030\250\021\330\004\017\320\017 \240\001\240\030\250\021\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fq\320qv\320v|\320|}\360\000\000~\001G\002\360\000\000G\002V\002\360\000\000V\002e\002\360\000\000e\002t\002\360\000\000t\002C\003\360\000\000C\003R\003\360\000\000R\003S\003\360\000\000S\003_\003\360\000\000_\003`\003\360\000\000`\003o\003\360\000\000o\003z\003\360\000\000z\003B\004\360\000\000B\004H\004\360\000\000H\004I\004\360\000\000I\004T\004\360\000\000T\004_\004\360\000\000_\004g\004\360\000\000g\004m\004\360\000\000m\004n\004\360\000\000n\004o\004\330\004\025\220Q\220l\240!\330\004\013\210;\220a\200\001\340]w\360\000\000x\001R\002\360\000\000R\002S\002\360.\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\017\270\177\310a\330\004\017\320\017 \240\001\240\030\250\021\330\004\017\320\017 \240\001\240\030\250\021\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gr\320rw\320w}\320}~\360\000\000\177\001H\002""\360\000\000H\002W\002\360\000\000W\002f\002\360\000\000f\002u\002\360\000\000u\002v\002\360\000\000v\002B\003\360\000\000B\003C\003\360\000\000C\003R\003\360\000\000R\003]\003\360\000\000]\003e\003\360\000\000e\003k\003\360\000\000k\003l\003\360\000\000l\003w\003\360\000\000w\003B\004\360\000\000B\004J\004\360\000\000J\004P\004\360\000\000P\004Q\004\360\000\000Q\004R\004\330\004\025\220Q\220m\2401\330\004\013\210;\220a\200\001\340wx\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]e\320eo\320ou\320uv\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002P\002\360\000\000P\002V\002\360\000\000V\002\\\002\360\000\000\\\002]\002\360\000\000]\002f\002\360\000\000f\002s\002\360\000\000s\002t\002\360\000\000t\002@\003\360\000\000@\003A\003\360\000\000A\003P\003\360\000\000P\003[\003\360\000\000[\003b\003\360\000\000b\003h\003\360\000\000h\003i\003\360\000\000i\003j\003\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340`x\360\000\000y\001P\002\360\000\000P\002Q\002\3606\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\025\240a\330\004\027\220q\330\004\030\230\001\330\004\027\220q\330\004\021\220\026\220r\230\026\230x\240r\250\024\250V\2608\2702\270T\300\034\310[\320Xe\320er\320r~\360\000\000\177\001G\002\360\000\000G\002H\002\360\000\000H\002T\002\360\000\000T\002U\002\360\000\000U\002d\002\360\000\000d\002e\002\360\000\000e\002x\002\360\000\000x\002y\002\360\000\000y\002M\003\360\000\000M\003N\003\360""\000\000N\003O\003\330\004\025\220Q\220i\230q\330\004\013\320\013\036\320\0362\260!\200\001\330\004\007\200y\220\003\2201\330\010\017\210q\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\340\010\026\220a\330\004\n\210)\2201\220A\330\010\027\220z\240\021\200\001\360\004\000z\001R\002\360\000\000R\002S\002\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]e\320eo\320ou\320uv\330\004\r\210U\220'\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250}\270A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fq\320qv\320v|\320|}\360\000\000~\001G\002\360\000\000G\002R\002\360\000\000R\002X\002\360\000\000X\002^\002\360\000\000^\002_\002\360\000\000_\002h\002\360\000\000h\002u\002\360\000\000u\002B\003\360\000\000B\003C\003\360\000\000C\003O\003\360\000\000O\003P\003\360\000\000P\003_\003\360\000\000_\003j\003\360\000\000j\003q\003\360\000\000q\003w\003\360\000\000w\003x\003\360\000\000x\003y\003\330\004\025\220Q\220l\240!\330\004\013\2101"; PyObject *data = NULL; CYTHON_UNUSED_VAR(__Pyx_DecompressString); #endif PyObject **stringtab = __pyx_mstate->__pyx_string_tab; Py_ssize_t pos = 0; - for (int i = 0; i < 948; i++) { + for (int i = 0; i < 1116; i++) { Py_ssize_t bytes_length = index[i].length; PyObject *string = PyUnicode_DecodeUTF8(bytes + pos, bytes_length, NULL); - if (likely(string) && i >= 97) PyUnicode_InternInPlace(&string); + if (likely(string) && i >= 113) PyUnicode_InternInPlace(&string); if (unlikely(!string)) { Py_XDECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) @@ -87059,7 +104942,7 @@ const char* const bytes = ": 3Allocation Error (TA_ALLOC_ERR)Bad Object (TA_BAD_ stringtab[i] = string; pos += bytes_length; } - for (int i = 948; i < 1154; i++) { + for (int i = 1116; i < 1383; i++) { Py_ssize_t bytes_length = index[i].length; PyObject *string = PyBytes_FromStringAndSize(bytes + pos, bytes_length); stringtab[i] = string; @@ -87070,15 +104953,15 @@ const char* const bytes = ": 3Allocation Error (TA_ALLOC_ERR)Bad Object (TA_BAD_ } } Py_XDECREF(data); - for (Py_ssize_t i = 0; i < 1154; i++) { + for (Py_ssize_t i = 0; i < 1383; i++) { if (unlikely(PyObject_Hash(stringtab[i]) == -1)) { __PYX_ERR(0, 1, __pyx_L1_error) } } #if CYTHON_IMMORTAL_CONSTANTS { - PyObject **table = stringtab + 948; - for (Py_ssize_t i=0; i<206; ++i) { + PyObject **table = stringtab + 1116; + for (Py_ssize_t i=0; i<267; ++i) { #if PY_VERSION_HEX >= 0x030F0000 PyUnstable_SetImmortal(table[i]); #elif CYTHON_COMPILING_IN_CPYTHON_FREETHREADING @@ -87101,18 +104984,18 @@ const char* const bytes = ": 3Allocation Error (TA_ALLOC_ERR)Bad Object (TA_BAD_ } { PyObject **numbertab = __pyx_mstate->__pyx_number_tab + 0; - int8_t const cint_constants_1[] = {0,-1,1,2,3,4,8,9,12,16,32,64}; - int16_t const cint_constants_2[] = {128,256,512,1024,2048,4096}; - int32_t const cint_constants_4[] = {16777216L,67108864L,134217728L,268435456L}; - for (int i = 0; i < 22; i++) { - numbertab[i] = PyLong_FromLong((i < 12 ? cint_constants_1[i - 0] : (i < 18 ? cint_constants_2[i - 12] : cint_constants_4[i - 18]))); + int8_t const cint_constants_1[] = {0,-1,1,2,3,4,8,12,14,16,32,64}; + int16_t const cint_constants_2[] = {128,256,512,1024,2048,4096,8192}; + int32_t const cint_constants_4[] = {16777216L,33554432L,67108864L,134217728L,268435456L,536870912L,1073741824L}; + for (int i = 0; i < 26; i++) { + numbertab[i] = PyLong_FromLong((i < 12 ? cint_constants_1[i - 0] : (i < 19 ? cint_constants_2[i - 12] : cint_constants_4[i - 19]))); if (unlikely(!numbertab[i])) __PYX_ERR(0, 1, __pyx_L1_error) } } #if CYTHON_IMMORTAL_CONSTANTS { PyObject **table = __pyx_mstate->__pyx_number_tab; - for (Py_ssize_t i=0; i<22; ++i) { + for (Py_ssize_t i=0; i<26; ++i) { #if PY_VERSION_HEX >= 0x030F0000 PyUnstable_SetImmortal(table[i]); #elif CYTHON_COMPILING_IN_CPYTHON_FREETHREADING @@ -87160,1849 +105043,2254 @@ static int __Pyx_CreateCodeObjects(__pyx_mstatetype *__pyx_mstate) { PyObject* tuple_dedup_map = PyDict_New(); if (unlikely(!tuple_dedup_map)) return -1; { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_function_name, __pyx_mstate->__pyx_n_u_ret_code}; __pyx_mstate_global->__pyx_codeobj_tab[0] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__common_pxi, __pyx_mstate->__pyx_n_u_ta_check_success, __pyx_mstate->__pyx_kp_b_iso88591_y_1_q_Q_a_Q_a_Q_a_Q_a_Q_a_Q_a_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[0])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 50}; + const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 54}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_ret_code}; __pyx_mstate_global->__pyx_codeobj_tab[1] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__common_pxi, __pyx_mstate->__pyx_n_u_ta_initialize, __pyx_mstate->__pyx_kp_b_iso88591_Q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[1])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 55}; + const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 59}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_ret_code}; __pyx_mstate_global->__pyx_codeobj_tab[2] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__common_pxi, __pyx_mstate->__pyx_n_u_ta_shutdown, __pyx_mstate->__pyx_kp_b_iso88591_a_QoQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[2])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 63}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 68}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self}; - __pyx_mstate_global->__pyx_codeobj_tab[3] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__common_pxi, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_A_A_6_6_6_7_7_81_7_7_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[3])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[3] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__common_pxi, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_A_A_6_6_6_7_7_81_7_7_5_6_a_Q_81, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[3])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 76}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 86}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_type}; __pyx_mstate_global->__pyx_codeobj_tab[4] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__common_pxi, __pyx_mstate->__pyx_n_u_getitem, __pyx_mstate->__pyx_kp_b_iso88591_A_t81A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[4])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 90}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_name, __pyx_mstate->__pyx_n_u_period, __pyx_mstate->__pyx_n_u_ret_code, __pyx_mstate->__pyx_n_u_id}; - __pyx_mstate_global->__pyx_codeobj_tab[5] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__common_pxi, __pyx_mstate->__pyx_n_u_ta_set_unstable_period, __pyx_mstate->__pyx_kp_b_iso88591_Qa_q_A_Q_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[5])) goto bad; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 135}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_name}; + __pyx_mstate_global->__pyx_codeobj_tab[5] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__common_pxi, __pyx_mstate->__pyx_n_u_ta_func_unst_id, __pyx_mstate->__pyx_kp_b_iso88591_uCq_Q_1A_1_q_AQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[5])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 144}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_name, __pyx_mstate->__pyx_n_u_period, __pyx_mstate->__pyx_n_u_ret_code, __pyx_mstate->__pyx_n_u_id, __pyx_mstate->__pyx_n_u_unst_id}; + __pyx_mstate_global->__pyx_codeobj_tab[6] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__common_pxi, __pyx_mstate->__pyx_n_u_ta_set_unstable_period, __pyx_mstate->__pyx_kp_b_iso88591_aq_xs_q_A_Q_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[6])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 96}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_name, __pyx_mstate->__pyx_n_u_period, __pyx_mstate->__pyx_n_u_id}; - __pyx_mstate_global->__pyx_codeobj_tab[6] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__common_pxi, __pyx_mstate->__pyx_n_u_ta_get_unstable_period, __pyx_mstate->__pyx_kp_b_iso88591_Qa_Qa_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[6])) goto bad; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 154}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_name, __pyx_mstate->__pyx_n_u_period, __pyx_mstate->__pyx_n_u_id, __pyx_mstate->__pyx_n_u_unst_id}; + __pyx_mstate_global->__pyx_codeobj_tab[7] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__common_pxi, __pyx_mstate->__pyx_n_u_ta_get_unstable_period, __pyx_mstate->__pyx_kp_b_iso88591_aq_xs_q_Qa_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[7])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 102}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 164}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_value, __pyx_mstate->__pyx_n_u_ret_code}; - __pyx_mstate_global->__pyx_codeobj_tab[7] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__common_pxi, __pyx_mstate->__pyx_n_u_ta_set_compatibility, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[7])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[8] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__common_pxi, __pyx_mstate->__pyx_n_u_ta_set_compatibility, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[8])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 107}; + const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 169}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_value}; - __pyx_mstate_global->__pyx_codeobj_tab[8] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__common_pxi, __pyx_mstate->__pyx_n_u_ta_get_compatibility, __pyx_mstate->__pyx_kp_b_iso88591_1_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[8])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[9] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__common_pxi, __pyx_mstate->__pyx_n_u_ta_get_compatibility, __pyx_mstate->__pyx_kp_b_iso88591_1_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[9])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 124}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 186}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_settingtype, __pyx_mstate->__pyx_n_u_rangetype, __pyx_mstate->__pyx_n_u_avgperiod, __pyx_mstate->__pyx_n_u_factor, __pyx_mstate->__pyx_n_u_ret_code}; - __pyx_mstate_global->__pyx_codeobj_tab[9] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__common_pxi, __pyx_mstate->__pyx_n_u_ta_set_candle_settings, __pyx_mstate->__pyx_kp_b_iso88591_q_1_Q_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[9])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[10] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__common_pxi, __pyx_mstate->__pyx_n_u_ta_set_candle_settings, __pyx_mstate->__pyx_kp_b_iso88591_q_1_Q_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[10])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 129}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 191}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_settingtype, __pyx_mstate->__pyx_n_u_ret_code}; - __pyx_mstate_global->__pyx_codeobj_tab[10] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__common_pxi, __pyx_mstate->__pyx_n_u_ta_restore_candle_default_setti, __pyx_mstate->__pyx_kp_b_iso88591_2_1_Q_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[10])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[11] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__common_pxi, __pyx_mstate->__pyx_n_u_ta_restore_candle_default_setti, __pyx_mstate->__pyx_kp_b_iso88591_2_1_Q_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[11])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 142}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 142}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_signalperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[12] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_AC, __pyx_mstate->__pyx_kp_b_iso88591_UUmmn_aq_Qa_6_8_T_3a_U_7_A_we_M, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[12])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 176}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outrealupperband, __pyx_mstate->__pyx_n_u_outrealmiddleband, __pyx_mstate->__pyx_n_u_outreallowerband}; - __pyx_mstate_global->__pyx_codeobj_tab[11] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ACCBANDS, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[11])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[13] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ACCBANDS, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[13])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 181}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 215}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[12] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ACOS, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_A_q_4y_4vQi, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[12])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[14] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ACOS, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_A_q_4y_4vQi, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[14])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 210}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 244}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[13] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_AD, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_gQ_8_T_3hjX_eeoouuv, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[13])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[15] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_AD, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_gQ_8_T_3hjX_eeoouuv, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[15])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 242}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 276}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[14] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ADD, __pyx_mstate->__pyx_kp_b_iso88591_Kq_Kq_7_8_U_E_U_7_A_we_1_q_i_vQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[14])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[16] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ADD, __pyx_mstate->__pyx_kp_b_iso88591_Kq_Kq_7_8_U_E_U_7_A_we_1_q_i_vQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[16])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 273}; + const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 307}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[15] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ADOSC, __pyx_mstate->__pyx_kp_b_iso88591_z_R_R_S_aq_Qa_Kq_6_gQ_8_T_3hjX, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[15])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[17] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ADOSC, __pyx_mstate->__pyx_kp_b_iso88591_z_R_R_S_aq_Qa_Kq_6_gQ_8_T_3hjX, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[17])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 342}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[18] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ADR, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_6_8_T_3a_U_7_A_we_2Q_q_i, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[18])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 308}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 374}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[16] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ADX, __pyx_mstate->__pyx_kp_b_iso88591_Z_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[16])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[19] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ADX, __pyx_mstate->__pyx_kp_b_iso88591_Z_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[19])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 341}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 407}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[17] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ADXR, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[17])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[20] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ADXR, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[20])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 374}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 440}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[21] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_AO, __pyx_mstate->__pyx_kp_b_iso88591_UUV_aq_Qa_6_8_T_3a_U_7_A_we_M_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[21])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 473}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[18] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_APO, __pyx_mstate->__pyx_kp_b_iso88591_TTU_aq_T_q_8_T_U_7_A_we_2_q_q_i, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[18])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[22] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_APO, __pyx_mstate->__pyx_kp_b_iso88591_TTU_aq_T_q_8_T_U_7_A_we_2_q_q_i, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[22])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 407}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 506}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outaroondown, __pyx_mstate->__pyx_n_u_outaroonup}; - __pyx_mstate_global->__pyx_codeobj_tab[19] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_AROON, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Qa_6_8_T_3a_U_7_A_we_Rq_AX, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[19])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[23] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_AROON, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Qa_6_8_T_3a_U_7_A_we_Rq_AX, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[23])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 442}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 541}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[20] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_AROONOSC, __pyx_mstate->__pyx_kp_b_iso88591_CD_aq_Qa_6_8_T_3a_U_7_A_we_0_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[20])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[24] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_AROONOSC, __pyx_mstate->__pyx_kp_b_iso88591_CD_aq_Qa_6_8_T_3a_U_7_A_we_0_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[24])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 474}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 573}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[21] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ASIN, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_A_q_4y_4vQi, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[21])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[25] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ASIN, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_A_q_4y_4vQi, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[25])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 503}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 602}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[22] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ATAN, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_A_q_4y_4vQi, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[22])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[26] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ATAN, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_A_q_4y_4vQi, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[26])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 532}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 631}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[23] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ATR, __pyx_mstate->__pyx_kp_b_iso88591_Z_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[23])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[27] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ATR, __pyx_mstate->__pyx_kp_b_iso88591_Z_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[27])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 565}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[24] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_AVGPRICE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[24])) goto bad; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 664}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[28] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_AVGDEV, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_b_q_2T_T_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[28])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 597}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[25] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_AVGDEV, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_b_q_2T_T_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[25])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 695}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[29] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_AVGPRICE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[29])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 628}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 727}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_nbdevup, __pyx_mstate->__pyx_n_u_nbdevdn, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outrealupperband, __pyx_mstate->__pyx_n_u_outrealmiddleband, __pyx_mstate->__pyx_n_u_outreallowerband}; - __pyx_mstate_global->__pyx_codeobj_tab[26] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_BBANDS, __pyx_mstate->__pyx_kp_b_iso88591_VVmmn4_aq_T_q_8_T_U_7_A_we_b_Zz, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[26])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[30] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_BBANDS, __pyx_mstate->__pyx_kp_b_iso88591_VVmmn4_aq_T_q_8_T_U_7_A_we_b_Zz, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[30])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 668}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 767}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[27] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_BETA, __pyx_mstate->__pyx_kp_b_iso88591_BC_Kq_Kq_7_8_U_E_U_7_A_we_Ba_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[27])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[31] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_BETA, __pyx_mstate->__pyx_kp_b_iso88591_BC_Kq_Kq_7_8_U_E_U_7_A_we_Ba_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[31])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 701}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 800}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[28] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_BOP, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[28])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[32] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_BOP, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[32])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 733}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 832}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[29] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CCI, __pyx_mstate->__pyx_kp_b_iso88591_Z_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[29])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[33] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CCI, __pyx_mstate->__pyx_kp_b_iso88591_Z_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[33])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 766}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 865}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[30] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDL2CROWS, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[30])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[34] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDL2CROWS, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[34])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 798}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 897}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[31] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDL3BLACKCROWS, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[31])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[35] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDL3BLACKCROWS, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[35])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 830}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 929}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[32] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDL3INSIDE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[32])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[36] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDL3INSIDE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[36])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 862}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 961}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[33] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDL3LINESTRIKE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[33])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[37] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDL3LINESTRIKE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[37])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 894}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 993}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[34] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDL3OUTSIDE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[34])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[38] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDL3OUTSIDE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[38])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 926}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1025}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[35] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDL3STARSINSOUTH, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[35])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[39] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDL3STARSINSOUTH, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[39])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 958}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1057}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[36] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDL3WHITESOLDIERS, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[36])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[40] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDL3WHITESOLDIERS, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[40])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 990}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1089}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[37] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLABANDONEDBABY, __pyx_mstate->__pyx_kp_b_iso88591_C_D_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[37])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[41] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLABANDONEDBABY, __pyx_mstate->__pyx_kp_b_iso88591_C_D_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[41])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1024}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1123}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[38] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLADVANCEBLOCK, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[38])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[42] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLADVANCEBLOCK, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[42])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1056}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1155}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[39] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLBELTHOLD, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[39])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[43] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLBELTHOLD, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[43])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1088}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1187}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[40] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLBREAKAWAY, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_10, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[40])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[44] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLBREAKAWAY, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_10, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[44])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1120}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1219}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[41] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLCLOSINGMARUBOZU, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_11, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[41])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[45] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLCLOSINGMARUBOZU, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_11, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[45])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1152}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1251}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[42] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLCONCEALBABYSWALL, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_12, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[42])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[46] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLCONCEALBABYSWALL, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_12, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[46])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1184}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1283}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[43] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLCOUNTERATTACK, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[43])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[47] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLCOUNTERATTACK, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[47])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1216}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1315}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[44] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLDARKCLOUDCOVER, __pyx_mstate->__pyx_kp_b_iso88591_D_E_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[44])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[48] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLDARKCLOUDCOVER, __pyx_mstate->__pyx_kp_b_iso88591_D_E_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[48])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1250}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1349}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[45] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLDOJI, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_13, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[45])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[49] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLDOJI, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_13, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[49])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1282}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1381}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[46] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLDOJISTAR, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[46])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[50] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLDOJISTAR, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[50])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1314}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1413}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[47] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLDRAGONFLYDOJI, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[47])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[51] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLDRAGONFLYDOJI, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[51])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1346}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1445}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[48] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLENGULFING, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_10, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[48])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[52] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLENGULFING, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_10, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[52])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1378}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1477}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[49] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLEVENINGDOJISTAR, __pyx_mstate->__pyx_kp_b_iso88591_E_F_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[49])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[53] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLEVENINGDOJISTAR, __pyx_mstate->__pyx_kp_b_iso88591_E_F_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[53])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1412}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1511}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[50] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLEVENINGSTAR, __pyx_mstate->__pyx_kp_b_iso88591_A_B_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[50])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[54] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLEVENINGSTAR, __pyx_mstate->__pyx_kp_b_iso88591_A_B_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[54])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1446}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1545}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[51] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLGAPSIDESIDEWHITE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_12, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[51])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[55] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLGAPSIDESIDEWHITE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_12, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[55])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1478}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1577}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[52] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLGRAVESTONEDOJI, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[52])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[56] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLGRAVESTONEDOJI, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[56])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1510}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1609}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[53] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLHAMMER, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[53])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[57] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLHAMMER, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[57])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1542}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1641}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[54] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLHANGINGMAN, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_14, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[54])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[58] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLHANGINGMAN, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_14, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[58])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1574}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1673}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[55] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLHARAMI, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[55])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[59] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLHARAMI, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[59])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1606}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1705}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[56] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLHARAMICROSS, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[56])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[60] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLHARAMICROSS, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[60])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1638}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1737}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[57] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLHIGHWAVE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[57])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[61] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLHIGHWAVE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[61])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1670}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1769}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[58] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLHIKKAKE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[58])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[62] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLHIKKAKE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[62])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1702}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1801}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[59] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLHIKKAKEMOD, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_14, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[59])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[63] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLHIKKAKEMOD, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_14, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[63])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1734}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1833}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[60] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLHOMINGPIGEON, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[60])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[64] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLHOMINGPIGEON, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[64])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1766}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1865}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[61] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLIDENTICAL3CROWS, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_11, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[61])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[65] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLIDENTICAL3CROWS, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_11, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[65])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1798}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1897}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[62] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLINNECK, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[62])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[66] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLINNECK, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[66])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1830}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1929}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[63] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLINVERTEDHAMMER, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[63])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[67] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLINVERTEDHAMMER, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[67])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1862}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1961}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[64] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLKICKING, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[64])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[68] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLKICKING, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[68])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1894}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1993}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[65] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLKICKINGBYLENGTH, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_11, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[65])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[69] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLKICKINGBYLENGTH, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_11, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[69])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1926}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2025}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[66] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLLADDERBOTTOM, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[66])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[70] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLLADDERBOTTOM, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[70])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1958}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2057}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[67] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLLONGLEGGEDDOJI, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[67])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[71] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLLONGLEGGEDDOJI, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[71])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1990}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2089}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[68] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLLONGLINE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[68])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[72] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLLONGLINE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[72])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2022}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2121}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[69] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLMARUBOZU, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[69])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[73] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLMARUBOZU, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[73])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2054}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2153}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[70] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLMATCHINGLOW, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[70])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[74] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLMATCHINGLOW, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[74])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2086}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2185}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[71] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLMATHOLD, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_15, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[71])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[75] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLMATHOLD, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_15, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[75])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2120}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2219}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[72] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLMORNINGDOJISTAR, __pyx_mstate->__pyx_kp_b_iso88591_E_F_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[72])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[76] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLMORNINGDOJISTAR, __pyx_mstate->__pyx_kp_b_iso88591_E_F_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[76])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2154}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2253}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[73] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLMORNINGSTAR, __pyx_mstate->__pyx_kp_b_iso88591_A_B_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[73])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[77] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLMORNINGSTAR, __pyx_mstate->__pyx_kp_b_iso88591_A_B_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[77])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2188}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2287}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[74] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLONNECK, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[74])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[78] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLONNECK, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[78])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2220}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2319}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[75] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLPIERCING, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[75])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[79] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLPIERCING, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[79])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2252}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2351}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[76] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLRICKSHAWMAN, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[76])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[80] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLRICKSHAWMAN, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[80])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2284}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2383}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[77] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLRISEFALL3METHODS, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_12, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[77])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[81] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLRISEFALL3METHODS, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_12, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[81])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2316}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2415}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[78] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLSEPARATINGLINES, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_11, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[78])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[82] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLSEPARATINGLINES, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_11, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[82])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2348}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2447}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[79] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLSHOOTINGSTAR, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[79])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[83] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLSHOOTINGSTAR, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[83])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2380}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2479}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[80] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLSHORTLINE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_10, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[80])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[84] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLSHORTLINE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_10, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[84])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2412}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2511}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[81] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLSPINNINGTOP, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[81])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[85] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLSPINNINGTOP, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[85])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2444}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2543}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[82] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLSTALLEDPATTERN, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[82])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[86] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLSTALLEDPATTERN, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[86])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2476}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2575}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[83] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLSTICKSANDWICH, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[83])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[87] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLSTICKSANDWICH, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[87])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2508}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2607}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[84] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLTAKURI, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[84])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[88] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLTAKURI, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[88])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2540}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2639}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[85] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLTASUKIGAP, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_10, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[85])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[89] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLTASUKIGAP, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_10, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[89])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2572}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2671}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[86] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLTHRUSTING, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_10, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[86])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[90] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLTHRUSTING, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_10, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[90])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2604}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2703}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[87] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLTRISTAR, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[87])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[91] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLTRISTAR, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[91])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2636}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2735}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[88] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLUNIQUE3RIVER, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[88])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[92] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLUNIQUE3RIVER, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[92])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2668}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2767}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[89] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLUPSIDEGAP2CROWS, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_11, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[89])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[93] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLUPSIDEGAP2CROWS, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_11, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[93])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2700}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2799}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[90] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLXSIDEGAP3METHODS, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_12, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[90])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[94] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLXSIDEGAP3METHODS, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_12, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[94])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2732}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2831}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[91] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CEIL, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_A_q_4y_4vQi, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[91])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[95] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CEIL, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_A_q_4y_4vQi, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[95])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2860}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[96] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CMF, __pyx_mstate->__pyx_kp_b_iso88591_wx_aq_Qa_Kq_6_gQ_8_T_3hjX_eeoou, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[96])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2761}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2894}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[92] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CMO, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[92])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[97] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CMO, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[97])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2792}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2925}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[98] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CMOU, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Ba_q_4y_4vQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[98])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2956}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_wmaperiod, __pyx_mstate->__pyx_n_u_roc1period, __pyx_mstate->__pyx_n_u_roc2period, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[99] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_COPPOCK, __pyx_mstate->__pyx_kp_b_iso88591_WWX_aq_T_q_8_T_U_7_A_we_r_q_Bd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[99])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2989}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[93] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CORREL, __pyx_mstate->__pyx_kp_b_iso88591_DE_Kq_Kq_7_8_U_E_U_7_A_we_b_q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[93])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[100] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CORREL, __pyx_mstate->__pyx_kp_b_iso88591_DE_Kq_Kq_7_8_U_E_U_7_A_we_b_q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[100])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3022}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[101] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_COS, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_1_q_i_fAYa, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[101])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2825}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3051}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[94] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_COS, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_1_q_i_fAYa, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[94])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[102] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_COSH, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_A_q_4y_4vQi, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[102])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2854}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3080}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[95] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_COSH, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_A_q_4y_4vQi, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[95])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[103] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CUMSUM, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_a_q_2T_T_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[103])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2883}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3109}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_rocperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[104] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CVI, __pyx_mstate->__pyx_kp_b_iso88591_VVW_aq_Qa_6_8_T_3a_U_7_A_we_2_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[104])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3142}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[96] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_DEMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Ba_q_4y_4vQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[96])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[105] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_DEMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Ba_q_4y_4vQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[105])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2914}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3173}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[97] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_DIV, __pyx_mstate->__pyx_kp_b_iso88591_Kq_Kq_7_8_U_E_U_7_A_we_1_q_i_vQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[97])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[106] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_DIV, __pyx_mstate->__pyx_kp_b_iso88591_Kq_Kq_7_8_U_E_U_7_A_we_1_q_i_vQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[106])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3204}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outrealupperband, __pyx_mstate->__pyx_n_u_outrealmiddleband, __pyx_mstate->__pyx_n_u_outreallowerband}; + __pyx_mstate_global->__pyx_codeobj_tab[107] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_DONCHIAN, __pyx_mstate->__pyx_kp_b_iso88591_CD_aq_Qa_6_8_T_3a_U_7_A_we_0_Rt, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[107])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2945}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3242}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[108] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_DPO, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[108])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3273}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[98] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_DX, __pyx_mstate->__pyx_kp_b_iso88591_YZ_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[98])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[109] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_DX, __pyx_mstate->__pyx_kp_b_iso88591_YZ_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[109])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3306}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[110] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_EFI, __pyx_mstate->__pyx_kp_b_iso88591_BC_Kq_7_8_U_F_U_7_A_we_2Q_q_i_v, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[110])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3338}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[111] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_EMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[111])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2978}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3369}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[99] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_EMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[99])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[112] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ER, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_A_q_r_Yk_V1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[112])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3009}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3400}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outbullpower, __pyx_mstate->__pyx_n_u_outbearpower}; + __pyx_mstate_global->__pyx_codeobj_tab[113] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ERI, __pyx_mstate->__pyx_kp_b_iso88591_Z_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[113])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3436}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[100] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_EXP, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_1_q_i_fAYa, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[100])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[114] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_EXP, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_1_q_i_fAYa, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[114])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3038}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3465}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[101] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_FLOOR, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Q_q_D_D_ay, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[101])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[115] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_FLOOR, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Q_q_D_D_ay, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[115])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3494}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[116] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_FOSC, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Ba_q_4y_4vQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[116])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3525}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_leftbars, __pyx_mstate->__pyx_n_u_rightbars, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outswinghigh, __pyx_mstate->__pyx_n_u_outswinglow}; + __pyx_mstate_global->__pyx_codeobj_tab[117] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_FRACTAL, __pyx_mstate->__pyx_kp_b_iso88591_BXXY_aq_Qa_6_8_T_3a_U_7_A_we_r, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[117])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3561}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outhaopen, __pyx_mstate->__pyx_n_u_outhahigh, __pyx_mstate->__pyx_n_u_outhalow, __pyx_mstate->__pyx_n_u_outhaclose}; + __pyx_mstate_global->__pyx_codeobj_tab[118] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_HA, __pyx_mstate->__pyx_kp_b_iso88591_2_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddn, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[118])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3602}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[119] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_HMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[119])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3067}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3633}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[102] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_HT_DCPERIOD, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_31_q_i_fAYa, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[102])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[120] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_HT_DCPERIOD, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_31_q_i_fAYa, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[120])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3096}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3662}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[103] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_HT_DCPHASE, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2_q_r_Yk_V1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[103])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[121] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_HT_DCPHASE, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2_q_r_Yk_V1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[121])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3125}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3691}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinphase, __pyx_mstate->__pyx_n_u_outquadrature}; - __pyx_mstate_global->__pyx_codeobj_tab[104] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_HT_PHASOR, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_1_81_Qha_b, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[104])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[122] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_HT_PHASOR, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_1_81_Qha_b, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[122])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3157}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3723}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outsine, __pyx_mstate->__pyx_n_u_outleadsine}; - __pyx_mstate_global->__pyx_codeobj_tab[105] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_HT_SINE, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_q_q_1HA_Bd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[105])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[123] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_HT_SINE, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_q_q_1HA_Bd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[123])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3189}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3755}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[106] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_HT_TRENDLINE, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_4A_q_4y_4vQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[106])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[124] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_HT_TRENDLINE, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_4A_q_4y_4vQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[124])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3218}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3784}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[107] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_HT_TRENDMODE, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_4A_q_4y_4vQ_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[107])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[125] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_HT_TRENDMODE, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_4A_q_4y_4vQ_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[125])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3247}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3813}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[108] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_IMI, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Kq_6_8_T_5_U_7_A_we_2Q_q_i, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[108])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[126] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_IMI, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Kq_6_8_T_5_U_7_A_we_2Q_q_i, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[126])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3279}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3845}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[109] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_KAMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Ba_q_4y_4vQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[109])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[127] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_KAMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Ba_q_4y_4vQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[127])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3310}; + const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3876}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_atrperiod, __pyx_mstate->__pyx_n_u_nbdev, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outrealupperband, __pyx_mstate->__pyx_n_u_outrealmiddleband, __pyx_mstate->__pyx_n_u_outreallowerband}; + __pyx_mstate_global->__pyx_codeobj_tab[128] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_KC, __pyx_mstate->__pyx_kp_b_iso88591_Yq_r_I_I_J_2_aq_Qa_Kq_6_a_8_T_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[128])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {8, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3917}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_fastk_period, __pyx_mstate->__pyx_n_u_slowk_period, __pyx_mstate->__pyx_n_u_slowk_matype, __pyx_mstate->__pyx_n_u_slowd_period, __pyx_mstate->__pyx_n_u_slowd_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outk, __pyx_mstate->__pyx_n_u_outd, __pyx_mstate->__pyx_n_u_outj}; + __pyx_mstate_global->__pyx_codeobj_tab[129] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_KDJ, __pyx_mstate->__pyx_kp_b_iso88591_Zt_u_O_O_e_e_6_aq_Qa_Kq_6_a_8_T, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[129])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3960}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[110] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_LINEARREG, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_1_1_q_b_I_F, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[110])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[130] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_LINEARREG, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_1_1_q_b_I_F, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[130])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3341}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3991}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[111] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_LINEARREG_ANGLE, __pyx_mstate->__pyx_kp_b_iso88591_01_aq_T_q_8_T_U_7_A_we_7r_q_Bd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[111])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[131] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_LINEARREG_ANGLE, __pyx_mstate->__pyx_kp_b_iso88591_01_aq_T_q_8_T_U_7_A_we_7r_q_Bd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[131])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3372}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4022}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[112] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_LINEARREG_INTERCEPT, __pyx_mstate->__pyx_kp_b_iso88591_45_aq_T_q_8_T_U_7_A_we_2Q_q_i_f, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[112])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[132] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_LINEARREG_INTERCEPT, __pyx_mstate->__pyx_kp_b_iso88591_45_aq_T_q_8_T_U_7_A_we_2Q_q_i_f, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[132])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3403}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4053}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[113] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_LINEARREG_SLOPE, __pyx_mstate->__pyx_kp_b_iso88591_01_aq_T_q_8_T_U_7_A_we_7r_q_Bd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[113])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[133] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_LINEARREG_SLOPE, __pyx_mstate->__pyx_kp_b_iso88591_01_aq_T_q_8_T_U_7_A_we_7r_q_Bd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[133])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3434}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4084}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[114] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_LN, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_q_r_Yk_V1IQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[114])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[134] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_LN, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_q_r_Yk_V1IQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[134])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3463}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4113}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[115] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_LOG10, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Q_q_D_D_ay, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[115])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[135] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_LOG10, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Q_q_D_D_ay, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[135])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3492}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4142}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[116] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MA, __pyx_mstate->__pyx_kp_b_iso88591_1_aq_T_q_8_T_U_7_A_we_M_q_r_Yk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[116])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[136] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MA, __pyx_mstate->__pyx_kp_b_iso88591_1_aq_T_q_8_T_U_7_A_we_M_q_r_Yk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[136])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3524}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4174}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_signalperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outmacd, __pyx_mstate->__pyx_n_u_outmacdsignal, __pyx_mstate->__pyx_n_u_outmacdhist}; - __pyx_mstate_global->__pyx_codeobj_tab[117] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MACD, __pyx_mstate->__pyx_kp_b_iso88591_UUV2_aq_T_q_8_T_U_7_A_we_Bm_q_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[117])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[137] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MACD, __pyx_mstate->__pyx_kp_b_iso88591_UUV2_aq_T_q_8_T_U_7_A_we_Bm_q_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[137])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {7, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3563}; + const __Pyx_PyCode_New_function_description descr = {7, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4213}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_fastmatype, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_slowmatype, __pyx_mstate->__pyx_n_u_signalperiod, __pyx_mstate->__pyx_n_u_signalmatype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outmacd, __pyx_mstate->__pyx_n_u_outmacdsignal, __pyx_mstate->__pyx_n_u_outmacdhist}; - __pyx_mstate_global->__pyx_codeobj_tab[118] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MACDEXT, __pyx_mstate->__pyx_kp_b_iso88591_SSkk_Y_Y_Z_8_aq_T_q_8_T_U_7_A_w, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[118])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[138] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MACDEXT, __pyx_mstate->__pyx_kp_b_iso88591_SSkk_Y_Y_Z_8_aq_T_q_8_T_U_7_A_w, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[138])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3605}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4255}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_signalperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outmacd, __pyx_mstate->__pyx_n_u_outmacdsignal, __pyx_mstate->__pyx_n_u_outmacdhist}; - __pyx_mstate_global->__pyx_codeobj_tab[119] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MACDFIX, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_r_q_Qha_1HA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[119])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[139] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MACDFIX, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_r_q_Qha_1HA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[139])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3642}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4292}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_fastlimit, __pyx_mstate->__pyx_n_u_slowlimit, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outmama, __pyx_mstate->__pyx_n_u_outfama}; - __pyx_mstate_global->__pyx_codeobj_tab[120] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MAMA, __pyx_mstate->__pyx_kp_b_iso88591_a_aq_T_q_8_T_U_7_A_we_Bl_q_q_4y, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[120])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[140] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MAMA, __pyx_mstate->__pyx_kp_b_iso88591_a_aq_T_q_8_T_U_7_A_we_Bl_q_q_4y, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[140])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4327}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[141] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MARKETFI, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_6_a_8_T_3hjX___U_7_A_we_0, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[141])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4358}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[142] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MASSI, __pyx_mstate->__pyx_kp_b_iso88591_XXY_aq_Qa_6_8_T_3a_U_7_A_we_R_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[142])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3677}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4391}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_periods, __pyx_mstate->__pyx_n_u_minperiod, __pyx_mstate->__pyx_n_u_maxperiod, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[121] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MAVP, __pyx_mstate->__pyx_kp_b_iso88591_CZZqqr_aq_k_6_8_T_7_U_7_A_we_Bl, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[121])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[143] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MAVP, __pyx_mstate->__pyx_kp_b_iso88591_CZZqqr_aq_k_6_8_T_7_U_7_A_we_Bl, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[143])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3712}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4426}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[122] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MAX, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[122])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[144] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MAX, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[144])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3743}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4457}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outinteger_data, __pyx_mstate->__pyx_n_u_i}; - __pyx_mstate_global->__pyx_codeobj_tab[123] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MAXINDEX, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_0_q_Rt9Kt6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[123])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[145] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MAXINDEX, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_0_q_Rt9Kt6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[145])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3777}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4491}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[124] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MEDPRICE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_6_8_T_3a_U_7_A_we_0_q_Rt9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[124])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[146] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MEDPRICE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_6_8_T_3a_U_7_A_we_0_q_Rt9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[146])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3807}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4521}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[125] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MFI, __pyx_mstate->__pyx_kp_b_iso88591_wx_aq_Qa_Kq_6_gQ_8_T_3hjX_eeoou, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[125])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[147] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MFI, __pyx_mstate->__pyx_kp_b_iso88591_wx_aq_Qa_Kq_6_gQ_8_T_3hjX_eeoou, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[147])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3841}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4555}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[126] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MIDPOINT, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_0_q_Rt9Kt6_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[126])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[148] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MIDPOINT, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_0_q_Rt9Kt6_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[148])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3872}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4586}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[127] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MIDPRICE, __pyx_mstate->__pyx_kp_b_iso88591_CD_aq_Qa_6_8_T_3a_U_7_A_we_0_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[127])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[149] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MIDPRICE, __pyx_mstate->__pyx_kp_b_iso88591_CD_aq_Qa_6_8_T_3a_U_7_A_we_0_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[149])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3904}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4618}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[128] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MIN, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[128])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[150] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MIN, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[150])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3935}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4649}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outinteger_data, __pyx_mstate->__pyx_n_u_i}; - __pyx_mstate_global->__pyx_codeobj_tab[129] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MININDEX, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_0_q_Rt9Kt6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[129])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[151] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MININDEX, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_0_q_Rt9Kt6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[151])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3969}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4683}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outmin, __pyx_mstate->__pyx_n_u_outmax}; - __pyx_mstate_global->__pyx_codeobj_tab[130] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MINMAX, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_b_axq_axq_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[130])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[152] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MINMAX, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_b_axq_axq_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[152])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4003}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4717}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outminidx, __pyx_mstate->__pyx_n_u_outmaxidx, __pyx_mstate->__pyx_n_u_outminidx_data, __pyx_mstate->__pyx_n_u_i, __pyx_mstate->__pyx_n_u_outmaxidx_data}; - __pyx_mstate_global->__pyx_codeobj_tab[131] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MINMAXINDEX, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_32Q_axq_axq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[131])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[153] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MINMAXINDEX, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_32Q_axq_axq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[153])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4043}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4757}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[132] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MINUS_DI, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[132])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[154] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MINUS_DI, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[154])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4076}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4790}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[133] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MINUS_DM, __pyx_mstate->__pyx_kp_b_iso88591_CD_aq_Qa_6_8_T_3a_U_7_A_we_0_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[133])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[155] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MINUS_DM, __pyx_mstate->__pyx_kp_b_iso88591_CD_aq_Qa_6_8_T_3a_U_7_A_we_0_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[155])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4108}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4822}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[134] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MOM, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[134])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[156] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MOM, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[156])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4139}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4853}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[135] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MULT, __pyx_mstate->__pyx_kp_b_iso88591_Kq_Kq_7_8_U_E_U_7_A_we_A_q_4y_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[135])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[157] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MULT, __pyx_mstate->__pyx_kp_b_iso88591_Kq_Kq_7_8_U_E_U_7_A_we_A_q_4y_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[157])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4170}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4884}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[136] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_NATR, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[136])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[158] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_NATR, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[158])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4203}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4917}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[159] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_NVI, __pyx_mstate->__pyx_kp_b_iso88591_Kq_7_8_U_F_U_7_A_we_1_q_i_vQi_R, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[159])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4947}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[137] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_OBV, __pyx_mstate->__pyx_kp_b_iso88591_aq_6_8_T_6_U_7_A_we_1_q_i_fAYkQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[137])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[160] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_OBV, __pyx_mstate->__pyx_kp_b_iso88591_aq_6_8_T_6_U_7_A_we_1_q_i_fAYkQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[160])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4234}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4978}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_percentile, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[161] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_PERCENTILE, __pyx_mstate->__pyx_kp_b_iso88591_C1_aq_T_q_8_T_U_7_A_we_2_M_q_r, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[161])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5010}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[162] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_PERCENTRANK, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_32Q_q_i_fAY, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[162])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5041}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[138] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_PLUS_DI, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[138])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[163] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_PLUS_DI, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[163])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4267}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5074}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[139] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_PLUS_DM, __pyx_mstate->__pyx_kp_b_iso88591_BC_aq_Qa_6_8_T_3a_U_7_A_we_r_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[139])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[164] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_PLUS_DM, __pyx_mstate->__pyx_kp_b_iso88591_BC_aq_Qa_6_8_T_3a_U_7_A_we_r_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[164])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4299}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5106}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[140] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_PPO, __pyx_mstate->__pyx_kp_b_iso88591_TTU_aq_T_q_8_T_U_7_A_we_2_q_q_i, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[140])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[165] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_PPO, __pyx_mstate->__pyx_kp_b_iso88591_TTU_aq_T_q_8_T_U_7_A_we_2_q_q_i, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[165])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5139}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[166] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_PVI, __pyx_mstate->__pyx_kp_b_iso88591_Kq_7_8_U_F_U_7_A_we_1_q_i_vQi_R, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[166])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4332}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5169}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[167] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_PVO, __pyx_mstate->__pyx_kp_b_iso88591_VVW_V6_8_V1_U_7_A_we_2_q_q_i_ay, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[167])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5202}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[168] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_PVT, __pyx_mstate->__pyx_kp_b_iso88591_Kq_7_8_U_F_U_7_A_we_1_q_i_vQi_R, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[168])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5232}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[169] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_QSTICK, __pyx_mstate->__pyx_kp_b_iso88591_CD_aq_Kq_6_8_T_5_U_7_A_we_b_q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[169])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5264}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[141] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ROC, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[141])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[170] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_RMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[170])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4363}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5295}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[142] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ROCP, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Ba_q_4y_4vQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[142])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[171] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ROC, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[171])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4394}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5326}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[143] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ROCR, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Ba_q_4y_4vQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[143])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[172] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ROCP, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Ba_q_4y_4vQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[172])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4425}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5357}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[144] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ROCR100, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_r_q_Bd_d_WX, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[144])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[173] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ROCR, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Ba_q_4y_4vQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[173])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4456}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5388}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[145] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_RSI, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[145])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[174] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ROCR100, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_r_q_Bd_d_WX, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[174])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4487}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5419}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[175] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_RSI, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[175])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5450}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_stddevperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[176] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_RVI, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_T_q_8_T_U_7_A_we_2_q_i_fAY, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[176])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5482}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[177] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_RVOL, __pyx_mstate->__pyx_kp_b_iso88591_V6_8_V1_U_7_A_we_Ba_q_4y_6_q_VW, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[177])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5513}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_acceleration, __pyx_mstate->__pyx_n_u_maximum, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[146] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SAR, __pyx_mstate->__pyx_kp_b_iso88591_YYZ_aq_Qa_6_8_T_3a_U_7_A_we_2_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[146])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[178] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SAR, __pyx_mstate->__pyx_kp_b_iso88591_YYZ_aq_Qa_6_8_T_3a_U_7_A_we_2_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[178])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {10, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4520}; + const __Pyx_PyCode_New_function_description descr = {10, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5546}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_startvalue, __pyx_mstate->__pyx_n_u_offsetonreverse, __pyx_mstate->__pyx_n_u_accelerationinitlong, __pyx_mstate->__pyx_n_u_accelerationlong, __pyx_mstate->__pyx_n_u_accelerationmaxlong, __pyx_mstate->__pyx_n_u_accelerationinitshort, __pyx_mstate->__pyx_n_u_accelerationshort, __pyx_mstate->__pyx_n_u_accelerationmaxshort, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[147] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SAREXT, __pyx_mstate->__pyx_kp_b_iso88591_A_z_____b_b_G_G_h_h_i_4_aq_Qa_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[147])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[179] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SAREXT, __pyx_mstate->__pyx_kp_b_iso88591_A_z_____b_b_G_G_h_h_i_4_aq_Qa_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[179])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4559}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5585}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[148] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SIN, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_1_q_i_fAYa, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[148])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[180] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SIN, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_1_q_i_fAYa, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[180])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4588}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5614}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[149] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SINH, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_A_q_4y_4vQi, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[149])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[181] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SINH, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_A_q_4y_4vQi, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[181])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4617}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5643}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[150] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[150])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[182] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[182])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {7, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5674}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_signalperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outsmi, __pyx_mstate->__pyx_n_u_outsmisignal}; + __pyx_mstate_global->__pyx_codeobj_tab[183] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SMI, __pyx_mstate->__pyx_kp_b_iso88591_Zr_s_K_K_c_c_d_0_aq_Qa_Kq_6_a_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[183])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4648}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5713}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[151] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SQRT, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_A_q_4y_4vQi, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[151])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[184] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SQRT, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_A_q_4y_4vQi, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[184])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4677}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5742}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_nbdev, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[152] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_STDDEV, __pyx_mstate->__pyx_kp_b_iso88591_q_aq_T_q_8_T_U_7_A_we_b_Q_q_2T, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[152])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[185] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_STDDEV, __pyx_mstate->__pyx_kp_b_iso88591_q_aq_T_q_8_T_U_7_A_we_b_Q_q_2T, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[185])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {8, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4709}; + const __Pyx_PyCode_New_function_description descr = {8, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5774}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_fastk_period, __pyx_mstate->__pyx_n_u_slowk_period, __pyx_mstate->__pyx_n_u_slowk_matype, __pyx_mstate->__pyx_n_u_slowd_period, __pyx_mstate->__pyx_n_u_slowd_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outslowk, __pyx_mstate->__pyx_n_u_outslowd}; - __pyx_mstate_global->__pyx_codeobj_tab[153] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_STOCH, __pyx_mstate->__pyx_kp_b_iso88591_v_w_Q_Q_f_f_A_2_aq_Qa_Kq_6_a_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[153])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[186] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_STOCH, __pyx_mstate->__pyx_kp_b_iso88591_v_w_Q_Q_f_f_A_2_aq_Qa_Kq_6_a_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[186])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4749}; + const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5814}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_fastk_period, __pyx_mstate->__pyx_n_u_fastd_period, __pyx_mstate->__pyx_n_u_fastd_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outfastk, __pyx_mstate->__pyx_n_u_outfastd}; - __pyx_mstate_global->__pyx_codeobj_tab[154] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_STOCHF, __pyx_mstate->__pyx_kp_b_iso88591_w_x_R_R_S_aq_Qa_Kq_6_a_8_T_3hjX, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[154])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[187] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_STOCHF, __pyx_mstate->__pyx_kp_b_iso88591_w_x_R_R_S_aq_Qa_Kq_6_a_8_T_3hjX, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[187])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4787}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5852}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_fastk_period, __pyx_mstate->__pyx_n_u_fastd_period, __pyx_mstate->__pyx_n_u_fastd_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outfastk, __pyx_mstate->__pyx_n_u_outfastd}; - __pyx_mstate_global->__pyx_codeobj_tab[155] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_STOCHRSI, __pyx_mstate->__pyx_kp_b_iso88591_AA_uuv0_aq_T_q_8_T_U_7_A_we_0_o, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[155])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[188] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_STOCHRSI, __pyx_mstate->__pyx_kp_b_iso88591_AA_uuv0_aq_T_q_8_T_U_7_A_we_0_o, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[188])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4824}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5889}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[156] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SUB, __pyx_mstate->__pyx_kp_b_iso88591_Kq_Kq_7_8_U_E_U_7_A_we_1_q_i_vQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[156])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[189] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SUB, __pyx_mstate->__pyx_kp_b_iso88591_Kq_Kq_7_8_U_E_U_7_A_we_1_q_i_vQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[189])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4855}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5920}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[157] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SUM, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[157])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[190] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SUM, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[190])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4886}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5951}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_multiplier, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outinteger}; + __pyx_mstate_global->__pyx_codeobj_tab[191] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SUPERTREND, __pyx_mstate->__pyx_kp_b_iso88591_ayyz_aq_Qa_Kq_6_a_8_T_3hjX_U_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[191])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5988}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_vfactor, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[158] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_T3, __pyx_mstate->__pyx_kp_b_iso88591_1_aq_T_q_8_T_U_7_A_we_M_q_r_Yk_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[158])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[192] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_T3, __pyx_mstate->__pyx_kp_b_iso88591_1_aq_T_q_8_T_U_7_A_we_M_q_r_Yk_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[192])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4918}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6020}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[159] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TAN, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_1_q_i_fAYa, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[159])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[193] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TAN, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_1_q_i_fAYa, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[193])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4947}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6049}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[160] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TANH, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_A_q_4y_4vQi, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[160])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[194] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TANH, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_A_q_4y_4vQi, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[194])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4976}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6078}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[161] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TEMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Ba_q_4y_4vQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[161])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[195] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TEMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Ba_q_4y_4vQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[195])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5007}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6109}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[162] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TRANGE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[162])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[196] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TRANGE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[196])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5038}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6140}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[163] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TRIMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Rq_q_D_D_ay, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[163])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[197] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TRIMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Rq_q_D_D_ay, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[197])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5069}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6171}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[164] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TRIX, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Ba_q_4y_4vQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[164])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[198] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TRIX, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Ba_q_4y_4vQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[198])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5100}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6202}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[165] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TSF, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[165])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[199] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TSF, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[199])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6233}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_firstperiod, __pyx_mstate->__pyx_n_u_secondperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[200] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TSI, __pyx_mstate->__pyx_kp_b_iso88591_Q_aq_T_q_8_T_U_7_A_we_2_1_q_i_f, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[200])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5131}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6265}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[166] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TYPPRICE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[166])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[201] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TYPPRICE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[201])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5162}; + const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6296}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod1, __pyx_mstate->__pyx_n_u_timeperiod2, __pyx_mstate->__pyx_n_u_timeperiod3, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[167] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ULTOSC, __pyx_mstate->__pyx_kp_b_iso88591_v_w_P_P_Q_aq_Qa_Kq_6_a_8_T_3hjX, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[167])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[202] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ULTOSC, __pyx_mstate->__pyx_kp_b_iso88591_v_w_P_P_Q_aq_Qa_Kq_6_a_8_T_3hjX, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[202])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5197}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6331}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_nbdev, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[168] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_VAR, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_T_q_8_T_U_7_A_we_2_q_i_fAY, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[168])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[203] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_VAR, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_T_q_8_T_U_7_A_we_2_q_i_fAY_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[203])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5229}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6363}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[204] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_VHF, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[204])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6394}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outplusvi, __pyx_mstate->__pyx_n_u_outminusvi}; + __pyx_mstate_global->__pyx_codeobj_tab[205] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_VORTEX, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[205])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6430}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[206] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_VWAP, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_gQ_8_T_3hjX_eeoouuv_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[206])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6462}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[207] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_VWMA, __pyx_mstate->__pyx_kp_b_iso88591_BC_aq_6_8_T_6_U_7_A_we_Ba_q_4y, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[207])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6495}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[208] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_WAD, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[208])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6526}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[169] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_WCLPRICE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[169])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[209] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_WCLPRICE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[209])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5260}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6557}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[170] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_WILLR, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[170])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[210] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_WILLR, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[210])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6590}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[211] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_WMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[211])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5293}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6621}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[171] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_WMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[171])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[212] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ZLEMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Rq_q_D_D_ay, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[212])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 74}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 73}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_s}; - __pyx_mstate_global->__pyx_codeobj_tab[172] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_str2bytes, __pyx_mstate->__pyx_kp_b_iso88591_A_uAS, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[172])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[213] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_str2bytes, __pyx_mstate->__pyx_kp_b_iso88591_A_uAS, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[213])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 77}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 76}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_b}; - __pyx_mstate_global->__pyx_codeobj_tab[173] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_bytes2str, __pyx_mstate->__pyx_kp_b_iso88591_A_q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[173])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[214] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_bytes2str, __pyx_mstate->__pyx_kp_b_iso88591_A_q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[214])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 82}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 81}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_s}; - __pyx_mstate_global->__pyx_codeobj_tab[174] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_str2bytes, __pyx_mstate->__pyx_kp_b_iso88591_A_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[174])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[215] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_str2bytes, __pyx_mstate->__pyx_kp_b_iso88591_A_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[215])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 85}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 84}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_b}; - __pyx_mstate_global->__pyx_codeobj_tab[175] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_bytes2str, __pyx_mstate->__pyx_kp_b_iso88591_A_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[175])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[216] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_bytes2str, __pyx_mstate->__pyx_kp_b_iso88591_A_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[216])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS|CO_VARKEYWORDS), 117}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS|CO_VARKEYWORDS), 116}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_function_name, __pyx_mstate->__pyx_n_u_func_object, __pyx_mstate->__pyx_n_u_args, __pyx_mstate->__pyx_n_u_kwargs}; - __pyx_mstate_global->__pyx_codeobj_tab[176] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_A_Jm6_M_Q_Jiq_A_O9F_b_O1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[176])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[217] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_A_Jm6_M_Q_Jiq_A_O9F_b_O1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[217])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 130}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 129}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_local, __pyx_mstate->__pyx_n_u_i, __pyx_mstate->__pyx_n_u_info, __pyx_mstate->__pyx_n_u_input_name, __pyx_mstate->__pyx_n_u_param_name, __pyx_mstate->__pyx_n_u_output_name}; - __pyx_mstate_global->__pyx_codeobj_tab[177] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_local_2, __pyx_mstate->__pyx_kp_b_iso88591_A_A_4wawa_1_Kq_Q_V1E_d_1_0_Ya_T, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[177])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[218] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_local_2, __pyx_mstate->__pyx_kp_b_iso88591_A_A_4wawa_1_Kq_Q_V1E_d_1_0_Ya_T, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[218])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 172}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 171}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self}; - __pyx_mstate_global->__pyx_codeobj_tab[178] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_info, __pyx_mstate->__pyx_kp_b_iso88591_A_t85_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[178])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[219] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_info, __pyx_mstate->__pyx_kp_b_iso88591_A_t85_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[219])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 179}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 178}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self}; - __pyx_mstate_global->__pyx_codeobj_tab[179] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_function_flags, __pyx_mstate->__pyx_kp_b_iso88591_A_t85, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[179])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[220] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_function_flags, __pyx_mstate->__pyx_kp_b_iso88591_A_t85, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[220])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 186}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 185}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self}; - __pyx_mstate_global->__pyx_codeobj_tab[180] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_output_flags, __pyx_mstate->__pyx_kp_b_iso88591_A_t85_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[180])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[221] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_output_flags, __pyx_mstate->__pyx_kp_b_iso88591_A_t85_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[221])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 193}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 192}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_local, __pyx_mstate->__pyx_n_u_ret, __pyx_mstate->__pyx_n_u_input_name}; - __pyx_mstate_global->__pyx_codeobj_tab[181] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_get_input_names, __pyx_mstate->__pyx_kp_b_iso88591_A_A_k_N_q_q_e_q_1A_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[181])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[222] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_get_input_names, __pyx_mstate->__pyx_kp_b_iso88591_A_A_k_N_q_q_e_q_1A_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[222])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 204}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 203}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_input_names, __pyx_mstate->__pyx_n_u_local, __pyx_mstate->__pyx_n_u_input_name, __pyx_mstate->__pyx_n_u_price_series}; - __pyx_mstate_global->__pyx_codeobj_tab[182] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_set_input_names, __pyx_mstate->__pyx_kp_b_iso88591_A_A_L_6_Qk_A_a_QnA_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[182])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[223] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_set_input_names, __pyx_mstate->__pyx_kp_b_iso88591_A_A_L_6_Qk_A_a_QnA_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[223])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 216}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 215}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_local}; - __pyx_mstate_global->__pyx_codeobj_tab[183] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_get_input_arrays, __pyx_mstate->__pyx_kp_b_iso88591_A_A_gQ_5_q_5_V1_5_U, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[183])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[224] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_get_input_arrays, __pyx_mstate->__pyx_kp_b_iso88591_A_A_gQ_5_q_5_V1_5_U, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[224])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 227}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 226}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_input_arrays, __pyx_mstate->__pyx_n_u_local, __pyx_mstate->__pyx_n_u_missing_keys, __pyx_mstate->__pyx_n_u_key, __pyx_mstate->__pyx_n_u_missing}; - __pyx_mstate_global->__pyx_codeobj_tab[184] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_set_input_arrays, __pyx_mstate->__pyx_kp_b_iso88591_A2_A_QnA_1_t_6a_gQ_d_Q_d_1_q_s_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[184])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[225] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_set_input_arrays, __pyx_mstate->__pyx_kp_b_iso88591_A2_A_QnA_1_t_6a_gQ_d_Q_d_1_q_s_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[225])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 276}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 275}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_local, __pyx_mstate->__pyx_n_u_ret, __pyx_mstate->__pyx_n_u_opt_input}; - __pyx_mstate_global->__pyx_codeobj_tab[185] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_get_parameters, __pyx_mstate->__pyx_kp_b_iso88591_A_A_k_M_a_q_T_7q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[185])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[226] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_get_parameters, __pyx_mstate->__pyx_kp_b_iso88591_A_A_k_M_a_q_T_7q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[226])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS), 286}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS), 285}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_parameters, __pyx_mstate->__pyx_n_u_kwargs, __pyx_mstate->__pyx_n_u_local, __pyx_mstate->__pyx_n_u_param, __pyx_mstate->__pyx_n_u_value}; - __pyx_mstate_global->__pyx_codeobj_tab[186] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_set_parameters, __pyx_mstate->__pyx_kp_b_iso88591_Q_A_1_G9JfA_t_1G1_q_1_a_U_4q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[186])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[227] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_set_parameters, __pyx_mstate->__pyx_kp_b_iso88591_Q_A_1_G9JfA_t_1G1_q_1_a_U_4q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[227])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS|CO_VARKEYWORDS), 301}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS|CO_VARKEYWORDS), 300}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_args, __pyx_mstate->__pyx_n_u_kwargs, __pyx_mstate->__pyx_n_u_local, __pyx_mstate->__pyx_n_u_update_info, __pyx_mstate->__pyx_n_u_key, __pyx_mstate->__pyx_n_u_value, __pyx_mstate->__pyx_n_u_skip_first, __pyx_mstate->__pyx_n_u_i, __pyx_mstate->__pyx_n_u_param_name}; - __pyx_mstate_global->__pyx_codeobj_tab[187] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_set_function_args, __pyx_mstate->__pyx_kp_b_iso88591_A_A_a_G1_t3e1_aq_4_q_Q_AT_V1A_S, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[187])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[228] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_set_function_args, __pyx_mstate->__pyx_kp_b_iso88591_A_A_a_G1_t3e1_aq_4_q_Q_AT_V1A_S, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[228])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 336}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 335}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_local, __pyx_mstate->__pyx_n_u_holder, __pyx_mstate->__pyx_n_u_i, __pyx_mstate->__pyx_n_u_opt_input, __pyx_mstate->__pyx_n_u_value, __pyx_mstate->__pyx_n_u_type, __pyx_mstate->__pyx_n_u_lookback}; - __pyx_mstate_global->__pyx_codeobj_tab[188] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_kp_b_iso88591_A_A_at1_C_IQe1_D_aq_E_AZq_vV_2_V, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[188])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[229] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_kp_b_iso88591_A_A_at1_C_IQe1_D_aq_E_AZq_vV_2_V, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[229])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 357}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 356}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_ret}; - __pyx_mstate_global->__pyx_codeobj_tab[189] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_output_names, __pyx_mstate->__pyx_kp_b_iso88591_A_d_q_4z_q_aq_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[189])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[230] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_output_names, __pyx_mstate->__pyx_kp_b_iso88591_A_d_q_4z_q_aq_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[230])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 367}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 366}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_local, __pyx_mstate->__pyx_n_u_ret, __pyx_mstate->__pyx_n_u_index}; - __pyx_mstate_global->__pyx_codeobj_tab[190] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_outputs, __pyx_mstate->__pyx_kp_b_iso88591_A_A_4uA_e87_4z_q_aq_gU_5_q_E_a_s, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[190])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[231] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_outputs, __pyx_mstate->__pyx_kp_b_iso88591_A_A_4uA_e87_4z_q_aq_gU_5_q_E_a_s, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[231])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 399}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 398}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_input_arrays}; - __pyx_mstate_global->__pyx_codeobj_tab[191] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_run, __pyx_mstate->__pyx_kp_b_iso88591_N_1_A_t1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[191])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[232] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_run, __pyx_mstate->__pyx_kp_b_iso88591_N_1_A_t1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[232])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS|CO_VARKEYWORDS), 411}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS|CO_VARKEYWORDS), 410}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_args, __pyx_mstate->__pyx_n_u_kwargs, __pyx_mstate->__pyx_n_u_local, __pyx_mstate->__pyx_n_u_opt_input_values, __pyx_mstate->__pyx_n_u_price_series_name_values, __pyx_mstate->__pyx_n_u_input_arrays, __pyx_mstate->__pyx_n_u_input_price_series_names, __pyx_mstate->__pyx_n_u_i, __pyx_mstate->__pyx_n_u_arg, __pyx_mstate->__pyx_n_u_msg, __pyx_mstate->__pyx_n_u_no_existing_input_arrays, __pyx_mstate->__pyx_n_u_param_name, __pyx_mstate->__pyx_n_u_value, __pyx_mstate->__pyx_n_u_input_name, __pyx_mstate->__pyx_n_u_n}; - __pyx_mstate_global->__pyx_codeobj_tab[192] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_call, __pyx_mstate->__pyx_kp_b_iso88591_A_A_2_k_Qa_e_e1_2S_AQ_U_t1A_q_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[192])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[233] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_call, __pyx_mstate->__pyx_kp_b_iso88591_A_A_2_k_Qa_e_e1_2S_AQ_U_t1A_q_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[233])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 477}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 476}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_local, __pyx_mstate->__pyx_n_u_input_price_series_names, __pyx_mstate->__pyx_n_u_input_name, __pyx_mstate->__pyx_n_u_price_series, __pyx_mstate->__pyx_n_u_name}; - __pyx_mstate_global->__pyx_codeobj_tab[193] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_input_price_series_names_2, __pyx_mstate->__pyx_kp_b_iso88591_A_A_1_N_q_5_A_z_HA_G1A_q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[193])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[234] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_input_price_series_names_2, __pyx_mstate->__pyx_kp_b_iso88591_A_A_1_N_q_5_A_z_HA_G1A_q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[234])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 489}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 488}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_local, __pyx_mstate->__pyx_n_u_input_price_series_names, __pyx_mstate->__pyx_n_u_args, __pyx_mstate->__pyx_n_u_price_series, __pyx_mstate->__pyx_n_u_series, __pyx_mstate->__pyx_n_u_opt_input, __pyx_mstate->__pyx_n_u_value, __pyx_mstate->__pyx_n_u_results, __pyx_mstate->__pyx_n_u_keys, __pyx_mstate->__pyx_n_u_i, __pyx_mstate->__pyx_n_u_output}; - __pyx_mstate_global->__pyx_codeobj_tab[194] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_call_function, __pyx_mstate->__pyx_kp_b_iso88591_A_A_4_B_q_A_U_q_we1_axq_wgQa_Q_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[194])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[235] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_call_function, __pyx_mstate->__pyx_kp_b_iso88591_A_A_4_B_q_A_U_q_we1_axq_wgQa_Q_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[235])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 520}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 519}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_input_name, __pyx_mstate->__pyx_n_u_value, __pyx_mstate->__pyx_n_u_type}; - __pyx_mstate_global->__pyx_codeobj_tab[195] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_check_opt_input_value, __pyx_mstate->__pyx_kp_b_iso88591_A_HKq_1A_6_5Q_A_7_4A_A_QgQ_7_1_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[195])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[236] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_check_opt_input_value, __pyx_mstate->__pyx_kp_b_iso88591_A_HKq_1A_6_5Q_A_7_4A_A_QgQ_7_1_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[236])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 535}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 534}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_input_name, __pyx_mstate->__pyx_n_u_local, __pyx_mstate->__pyx_n_u_value}; - __pyx_mstate_global->__pyx_codeobj_tab[196] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_get_opt_input_value, __pyx_mstate->__pyx_kp_b_iso88591_A_A_AQ_6_A_E_A_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[196])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[237] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_get_opt_input_value, __pyx_mstate->__pyx_kp_b_iso88591_A_A_AQ_6_A_E_A_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[237])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 545}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 544}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self}; - __pyx_mstate_global->__pyx_codeobj_tab[197] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_repr, __pyx_mstate->__pyx_kp_b_iso88591_A_uBd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[197])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[238] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_repr, __pyx_mstate->__pyx_kp_b_iso88591_A_uBd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[238])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 548}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 547}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self}; - __pyx_mstate_global->__pyx_codeobj_tab[198] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_unicode, __pyx_mstate->__pyx_kp_b_iso88591_A_wat81, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[198])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[239] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_unicode, __pyx_mstate->__pyx_kp_b_iso88591_A_wat81, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[239])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 551}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 550}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self}; - __pyx_mstate_global->__pyx_codeobj_tab[199] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_str, __pyx_mstate->__pyx_kp_b_iso88591_A_Qd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[199])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[240] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_str, __pyx_mstate->__pyx_kp_b_iso88591_A_Qd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[240])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 565}; + const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 564}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_table, __pyx_mstate->__pyx_n_u_groups, __pyx_mstate->__pyx_n_u_i}; - __pyx_mstate_global->__pyx_codeobj_tab[200] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_ta_getGroupTable, __pyx_mstate->__pyx_kp_b_iso88591_Q_B_1A_Q_V1E_gQfAU_Q_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[200])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[241] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_ta_getGroupTable, __pyx_mstate->__pyx_kp_b_iso88591_Q_B_1A_Q_V1E_gQfAU_Q_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[241])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 577}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 576}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_group, __pyx_mstate->__pyx_n_u_table, __pyx_mstate->__pyx_n_u_functions, __pyx_mstate->__pyx_n_u_i}; - __pyx_mstate_global->__pyx_codeobj_tab[201] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_ta_getFuncTable, __pyx_mstate->__pyx_kp_b_iso88591_Q_V1E_q_WAQ_Q_aq_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[201])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[242] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_ta_getFuncTable, __pyx_mstate->__pyx_kp_b_iso88591_Q_V1E_q_WAQ_Q_aq_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[242])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 589}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_flag, __pyx_mstate->__pyx_n_u_flags_lookup_dict, __pyx_mstate->__pyx_n_u_value_range, __pyx_mstate->__pyx_n_u_min_int, __pyx_mstate->__pyx_n_u_max_int, __pyx_mstate->__pyx_n_u_ret, __pyx_mstate->__pyx_n_u_i}; - __pyx_mstate_global->__pyx_codeobj_tab[202] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_get_flags, __pyx_mstate->__pyx_kp_b_iso88591_5_t_Qm1_d_1_c_d_3a_Q_c_d_3a_Q_u, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[202])) goto bad; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 588}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_flag, __pyx_mstate->__pyx_n_u_flags_lookup_dict, __pyx_mstate->__pyx_n_u_bit, __pyx_mstate->__pyx_n_u_description}; + __pyx_mstate_global->__pyx_codeobj_tab[243] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_get_flags, __pyx_mstate->__pyx_kp_b_iso88591_uBa_q_1A__F_F_t2Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[243])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 648}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 641}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_function_name, __pyx_mstate->__pyx_n_u_info, __pyx_mstate->__pyx_n_u_retCode}; - __pyx_mstate_global->__pyx_codeobj_tab[203] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_ta_getFuncInfo, __pyx_mstate->__pyx_kp_b_iso88591_314DAQ_Q_a_4q_a_Qd_c_a_Qd_s_4q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[203])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[244] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_ta_getFuncInfo, __pyx_mstate->__pyx_kp_b_iso88591_314DAQ_Q_a_4q_a_Qd_c_a_Qd_s_4q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[244])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 667}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 660}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_function_name, __pyx_mstate->__pyx_n_u_idx, __pyx_mstate->__pyx_n_u_info, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_name}; - __pyx_mstate_global->__pyx_codeobj_tab[204] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_ta_getInputParameterInfo, __pyx_mstate->__pyx_kp_b_iso88591_Q_NeSTTU_Q_2_9AT_4q_1G6_wc_t81H, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[204])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[245] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_ta_getInputParameterInfo, __pyx_mstate->__pyx_kp_b_iso88591_Q_NeSTTU_Q_2_9AT_4q_1G6_wc_t81H, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[245])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 688}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 681}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_function_name, __pyx_mstate->__pyx_n_u_idx, __pyx_mstate->__pyx_n_u_info, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_name, __pyx_mstate->__pyx_n_u_default_value}; - __pyx_mstate_global->__pyx_codeobj_tab[205] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_ta_getOptInputParameterInfo, __pyx_mstate->__pyx_kp_b_iso88591_Q_AQQVVWWX_Q_5Q_9AT_4q_1JfA_Cq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[205])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[246] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_ta_getOptInputParameterInfo, __pyx_mstate->__pyx_kp_b_iso88591_Q_AQQVVWWX_Q_5Q_9AT_4q_1JfA_Cq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[246])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 710}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 703}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_function_name, __pyx_mstate->__pyx_n_u_idx, __pyx_mstate->__pyx_n_u_info, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_name}; - __pyx_mstate_global->__pyx_codeobj_tab[206] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_ta_getOutputParameterInfo, __pyx_mstate->__pyx_kp_b_iso88591_1_a_OuTUUV_Q_31_9AT_4q_1HF_wc_d, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[206])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[247] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_ta_getOutputParameterInfo, __pyx_mstate->__pyx_kp_b_iso88591_1_a_OuTUUV_Q_31_9AT_4q_1HF_wc_d, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[247])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 730}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_func_info, __pyx_mstate->__pyx_n_u_defaults, __pyx_mstate->__pyx_n_u_func_line, __pyx_mstate->__pyx_n_u_func_args, __pyx_mstate->__pyx_n_u_docs, __pyx_mstate->__pyx_n_u_input_names, __pyx_mstate->__pyx_n_u_input_name, __pyx_mstate->__pyx_n_u_value, __pyx_mstate->__pyx_n_u_params, __pyx_mstate->__pyx_n_u_param, __pyx_mstate->__pyx_n_u_outputs, __pyx_mstate->__pyx_n_u_output, __pyx_mstate->__pyx_n_u_documentation}; - __pyx_mstate_global->__pyx_codeobj_tab[207] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_get_defaults_and_docs, __pyx_mstate->__pyx_kp_b_iso88591_q_9A_1_q_1_1_1A_q_a_1A_4z_A_G1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[207])) goto bad; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 723}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_func_info, __pyx_mstate->__pyx_n_u_defaults, __pyx_mstate->__pyx_n_u_func_line, __pyx_mstate->__pyx_n_u_func_args, __pyx_mstate->__pyx_n_u_docs, __pyx_mstate->__pyx_n_u_input_names, __pyx_mstate->__pyx_n_u_input_name, __pyx_mstate->__pyx_n_u_value, __pyx_mstate->__pyx_n_u_params, __pyx_mstate->__pyx_n_u_param, __pyx_mstate->__pyx_n_u_outputs, __pyx_mstate->__pyx_n_u_candlestick, __pyx_mstate->__pyx_n_u_output, __pyx_mstate->__pyx_n_u_documentation}; + __pyx_mstate_global->__pyx_codeobj_tab[248] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_get_defaults_and_docs, __pyx_mstate->__pyx_kp_b_iso88591_q_9A_1_q_1_1_1A_q_a_1A_4z_A_G1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[248])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_signalperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[249] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_AC, __pyx_mstate->__pyx_kp_b_iso88591_D_ttu_aq_Q_Qa_y_1_6_a_r_xr_V82T, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[249])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 43}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outrealupperband, __pyx_mstate->__pyx_n_u_outrealmiddleband, __pyx_mstate->__pyx_n_u_outreallowerband}; - __pyx_mstate_global->__pyx_codeobj_tab[208] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ACCBANDS, __pyx_mstate->__pyx_kp_b_iso88591_fg2_aq_Q_Qa_y_1_Kq_q_6_a_q_q_Rv, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[208])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[250] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ACCBANDS, __pyx_mstate->__pyx_kp_b_iso88591_fg2_aq_Q_Qa_y_1_Kq_q_6_a_q_q_Rv, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[250])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 50}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 84}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[209] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ACOS, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_qP_llmmn_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[209])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[251] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ACOS, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_qP_llmmn_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[251])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 77}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 111}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_volume_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[210] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_AD, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_Qa_y_1_Kq_q_6_6_gQ_a_r_xr, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[210])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[252] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_AD, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_Qa_y_1_Kq_q_6_6_gQ_a_r_xr, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[252])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 113}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 147}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real0_data, __pyx_mstate->__pyx_n_u_real1_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[211] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ADD, __pyx_mstate->__pyx_kp_b_iso88591_Kq_q_Kq_q_7_a_fHBd_iijjyyzz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[211])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[253] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ADD, __pyx_mstate->__pyx_kp_b_iso88591_Kq_q_Kq_q_7_a_fHBd_iijjyyzz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[253])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 144}; + const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 178}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_volume_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[212] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ADOSC, __pyx_mstate->__pyx_kp_b_iso88591_A_Y_Y_Z_aq_Q_Qa_y_1_Kq_q_6_6_gQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[212])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[254] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ADOSC, __pyx_mstate->__pyx_kp_b_iso88591_A_Y_Y_Z_aq_Q_Qa_y_1_Kq_q_6_6_gQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[254])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 217}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[255] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ADR, __pyx_mstate->__pyx_kp_b_iso88591_EF_aq_Q_Qa_y_1_6_a_fHBd_kYffggs, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[255])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 183}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 249}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[213] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ADX, __pyx_mstate->__pyx_kp_b_iso88591_ab_aq_Q_Qa_y_1_Kq_q_6_a_a_fHBd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[213])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[256] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ADX, __pyx_mstate->__pyx_kp_b_iso88591_ab_aq_Q_Qa_y_1_Kq_q_6_a_a_fHBd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[256])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 218}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 284}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[214] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ADXR, __pyx_mstate->__pyx_kp_b_iso88591_bc_aq_Q_Qa_y_1_Kq_q_6_a_a_6_4vX, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[214])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[257] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ADXR, __pyx_mstate->__pyx_kp_b_iso88591_bc_aq_Q_Qa_y_1_Kq_q_6_a_a_6_4vX, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[257])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 319}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[258] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_AO, __pyx_mstate->__pyx_kp_b_iso88591_D_aq_Q_Qa_y_1_6_a_r_xr_V82T_Xee, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[258])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 253}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 352}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[215] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_APO, __pyx_mstate->__pyx_kp_b_iso88591_CC_aq_Q_T_q_a_fHBd_m_hhqqrr_O_O, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[215])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[259] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_APO, __pyx_mstate->__pyx_kp_b_iso88591_CC_aq_Q_T_q_a_fHBd_m_hhqqrr_O_O, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[259])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 284}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 383}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outaroondown, __pyx_mstate->__pyx_n_u_outaroonup}; - __pyx_mstate_global->__pyx_codeobj_tab[216] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_AROON, __pyx_mstate->__pyx_kp_b_iso88591_GH_aq_Q_Qa_y_1_6_1_F_D_hb_LP_hh, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[216])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[260] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_AROON, __pyx_mstate->__pyx_kp_b_iso88591_GH_aq_Q_Qa_y_1_6_1_F_D_hb_LP_hh, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[260])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 319}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 418}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[217] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_AROONOSC, __pyx_mstate->__pyx_kp_b_iso88591_JK_aq_Q_Qa_y_1_6_a_RvXRt6_4_S_k, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[217])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[261] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_AROONOSC, __pyx_mstate->__pyx_kp_b_iso88591_JK_aq_Q_Qa_y_1_6_a_RvXRt6_4_S_k, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[261])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 351}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 450}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[218] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ASIN, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_qP_llmmn_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[218])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[262] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ASIN, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_qP_llmmn_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[262])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 378}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 477}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[219] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ATAN, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_qP_llmmn_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[219])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[263] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ATAN, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_qP_llmmn_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[263])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 405}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 504}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[220] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ATR, __pyx_mstate->__pyx_kp_b_iso88591_ab_aq_Q_Qa_y_1_Kq_q_6_a_a_fHBd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[220])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[264] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ATR, __pyx_mstate->__pyx_kp_b_iso88591_ab_aq_Q_Qa_y_1_Kq_q_6_a_a_fHBd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[264])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 440}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[221] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_AVGPRICE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_a_Rv, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[221])) goto bad; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 539}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[265] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_AVGDEV, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_2V82T_xr_Q___kkll_Qm, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[265])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 476}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[222] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_AVGDEV, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_2V82T_xr_Q___kkll_Qm, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[222])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 568}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[266] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_AVGPRICE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_a_Rv, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[266])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 505}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 604}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_nbdevup, __pyx_mstate->__pyx_n_u_nbdevdn, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outrealupperband, __pyx_mstate->__pyx_n_u_outrealmiddleband, __pyx_mstate->__pyx_n_u_outreallowerband}; - __pyx_mstate_global->__pyx_codeobj_tab[223] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_BBANDS, __pyx_mstate->__pyx_kp_b_iso88591_FF_ttu4_aq_Q_T_q_q_q_2V82T_xr_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[223])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[267] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_BBANDS, __pyx_mstate->__pyx_kp_b_iso88591_FF_ttu4_aq_Q_T_q_q_q_2V82T_xr_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[267])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 543}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 642}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real0_data, __pyx_mstate->__pyx_n_u_real1_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[224] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_BETA, __pyx_mstate->__pyx_kp_b_iso88591_IJ_Kq_q_Kq_q_7_a_6_4vXRt_P_jjkk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[224])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[268] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_BETA, __pyx_mstate->__pyx_kp_b_iso88591_IJ_Kq_q_Kq_q_7_a_6_4vXRt_P_jjkk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[268])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 576}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 675}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[225] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_BOP, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_a_fH, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[225])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[269] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_BOP, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_a_fH, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[269])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 612}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 711}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[226] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CCI, __pyx_mstate->__pyx_kp_b_iso88591_ab_aq_Q_Qa_y_1_Kq_q_6_a_a_fHBd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[226])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[270] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CCI, __pyx_mstate->__pyx_kp_b_iso88591_ab_aq_Q_Qa_y_1_Kq_q_6_a_a_fHBd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[270])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 647}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 746}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[227] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDL2CROWS, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_b_hb, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[227])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[271] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDL2CROWS, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_b_hb, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[271])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 683}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 782}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[228] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDL3BLACKCROWS, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_2V82, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[228])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[272] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDL3BLACKCROWS, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_2V82, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[272])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 719}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 818}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[229] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDL3INSIDE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_r_xr, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[229])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[273] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDL3INSIDE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_r_xr, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[273])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 755}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 854}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[230] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDL3LINESTRIKE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_2V82, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[230])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[274] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDL3LINESTRIKE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_2V82, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[274])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 791}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 890}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[231] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDL3OUTSIDE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_fHBd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[231])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[275] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDL3OUTSIDE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_fHBd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[275])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 827}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 926}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[232] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDL3STARSINSOUTH, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_RvXR, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[232])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[276] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDL3STARSINSOUTH, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_RvXR, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[276])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 863}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 962}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[233] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDL3WHITESOLDIERS, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_b_hb_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[233])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[277] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDL3WHITESOLDIERS, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_b_hb_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[277])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 899}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 998}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[234] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLABANDONEDBABY, __pyx_mstate->__pyx_kp_b_iso88591_J_K_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[234])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[278] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLABANDONEDBABY, __pyx_mstate->__pyx_kp_b_iso88591_J_K_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[278])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 937}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1036}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[235] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLADVANCEBLOCK, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_BfHB, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[235])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[279] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLADVANCEBLOCK, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_BfHB, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[279])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 973}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1072}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[236] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLBELTHOLD, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_fHBd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[236])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[280] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLBELTHOLD, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_fHBd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[280])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1009}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1108}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[237] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLBREAKAWAY, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_6_4v, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[237])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[281] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLBREAKAWAY, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_6_4v, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[281])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1045}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1144}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[238] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLCLOSINGMARUBOZU, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_r_xr_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[238])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[282] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLCLOSINGMARUBOZU, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_r_xr_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[282])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1081}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1180}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[239] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLCONCEALBABYSWALL, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_fHBd_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[239])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[283] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLCONCEALBABYSWALL, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_fHBd_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[283])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1117}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1216}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[240] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLCOUNTERATTACK, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_RvXR, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[240])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[284] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLCOUNTERATTACK, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_RvXR, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[284])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1153}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1252}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[241] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLDARKCLOUDCOVER, __pyx_mstate->__pyx_kp_b_iso88591_K_L_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[241])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[285] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLDARKCLOUDCOVER, __pyx_mstate->__pyx_kp_b_iso88591_K_L_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[285])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1191}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1290}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[242] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLDOJI, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_BfHB_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[242])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[286] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLDOJI, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_BfHB_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[286])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1227}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1326}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[243] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLDOJISTAR, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_fHBd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[243])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[287] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLDOJISTAR, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_fHBd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[287])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1263}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1362}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[244] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLDRAGONFLYDOJI, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_RvXR, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[244])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[288] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLDRAGONFLYDOJI, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_RvXR, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[288])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1299}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1398}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[245] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLENGULFING, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_6_4v, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[245])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[289] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLENGULFING, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_6_4v, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[289])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1335}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1434}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[246] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLEVENINGDOJISTAR, __pyx_mstate->__pyx_kp_b_iso88591_L_M_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[246])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[290] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLEVENINGDOJISTAR, __pyx_mstate->__pyx_kp_b_iso88591_L_M_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[290])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1373}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1472}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[247] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLEVENINGSTAR, __pyx_mstate->__pyx_kp_b_iso88591_H_I_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[247])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[291] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLEVENINGSTAR, __pyx_mstate->__pyx_kp_b_iso88591_H_I_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[291])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1411}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1510}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[248] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLGAPSIDESIDEWHITE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_fHBd_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[248])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[292] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLGAPSIDESIDEWHITE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_fHBd_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[292])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1447}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1546}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[249] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLGRAVESTONEDOJI, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_b_hb_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[249])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[293] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLGRAVESTONEDOJI, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_b_hb_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[293])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1483}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1582}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[250] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLHAMMER, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_b_hb, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[250])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[294] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLHAMMER, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_b_hb, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[294])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1519}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1618}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[251] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLHANGINGMAN, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_F_D, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[251])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[295] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLHANGINGMAN, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_F_D, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[295])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1555}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1654}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[252] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLHARAMI, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_b_hb, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[252])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[296] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLHARAMI, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_b_hb, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[296])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1591}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1690}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[253] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLHARAMICROSS, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_2V82, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[253])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[297] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLHARAMICROSS, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_2V82, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[297])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1627}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1726}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[254] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLHIGHWAVE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_fHBd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[254])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[298] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLHIGHWAVE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_fHBd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[298])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1663}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1762}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[255] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLHIKKAKE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_r_xr, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[255])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[299] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLHIKKAKE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_r_xr, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[299])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1699}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1798}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[256] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLHIKKAKEMOD, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_F_D, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[256])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[300] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLHIKKAKEMOD, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_F_D, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[300])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1735}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1834}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[257] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLHOMINGPIGEON, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_BfHB, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[257])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[301] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLHOMINGPIGEON, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_BfHB, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[301])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1771}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1870}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[258] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLIDENTICAL3CROWS, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_r_xr_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[258])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[302] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLIDENTICAL3CROWS, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_r_xr_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[302])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1807}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1906}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[259] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLINNECK, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_b_hb, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[259])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[303] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLINNECK, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_b_hb, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[303])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1843}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1942}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[260] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLINVERTEDHAMMER, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_b_hb_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[260])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[304] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLINVERTEDHAMMER, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_b_hb_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[304])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1879}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1978}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[261] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLKICKING, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_r_xr, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[261])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[305] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLKICKING, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_r_xr, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[305])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1915}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2014}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[262] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLKICKINGBYLENGTH, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_r_xr_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[262])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[306] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLKICKINGBYLENGTH, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_r_xr_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[306])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1951}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2050}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[263] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLLADDERBOTTOM, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_BfHB, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[263])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[307] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLLADDERBOTTOM, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_BfHB, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[307])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1987}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2086}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[264] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLLONGLEGGEDDOJI, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_b_hb_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[264])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[308] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLLONGLEGGEDDOJI, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_b_hb_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[308])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2023}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2122}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[265] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLLONGLINE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_fHBd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[265])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[309] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLLONGLINE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_fHBd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[309])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2059}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2158}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[266] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLMARUBOZU, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_fHBd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[266])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[310] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLMARUBOZU, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_fHBd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[310])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2095}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2194}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[267] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLMATCHINGLOW, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_2V82, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[267])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[311] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLMATCHINGLOW, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_2V82, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[311])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2131}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2230}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[268] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLMATHOLD, __pyx_mstate->__pyx_kp_b_iso88591_D_E_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[268])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[312] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLMATHOLD, __pyx_mstate->__pyx_kp_b_iso88591_D_E_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[312])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2169}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2268}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[269] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLMORNINGDOJISTAR, __pyx_mstate->__pyx_kp_b_iso88591_L_M_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[269])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[313] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLMORNINGDOJISTAR, __pyx_mstate->__pyx_kp_b_iso88591_L_M_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[313])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2207}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2306}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[270] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLMORNINGSTAR, __pyx_mstate->__pyx_kp_b_iso88591_H_I_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[270])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[314] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLMORNINGSTAR, __pyx_mstate->__pyx_kp_b_iso88591_H_I_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[314])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2245}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2344}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[271] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLONNECK, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_b_hb, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[271])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[315] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLONNECK, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_b_hb, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[315])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2281}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2380}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[272] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLPIERCING, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_fHBd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[272])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[316] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLPIERCING, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_fHBd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[316])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2317}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2416}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[273] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLRICKSHAWMAN, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_2V82, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[273])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[317] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLRICKSHAWMAN, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_2V82, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[317])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2353}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2452}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[274] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLRISEFALL3METHODS, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_fHBd_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[274])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[318] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLRISEFALL3METHODS, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_fHBd_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[318])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2389}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2488}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[275] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLSEPARATINGLINES, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_r_xr_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[275])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[319] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLSEPARATINGLINES, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_r_xr_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[319])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2425}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2524}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[276] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLSHOOTINGSTAR, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_BfHB, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[276])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[320] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLSHOOTINGSTAR, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_BfHB, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[320])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2461}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2560}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[277] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLSHORTLINE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_6_4v, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[277])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[321] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLSHORTLINE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_6_4v, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[321])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2497}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2596}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[278] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLSPINNINGTOP, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_2V82, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[278])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[322] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLSPINNINGTOP, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_2V82, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[322])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2533}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2632}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[279] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLSTALLEDPATTERN, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_b_hb_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[279])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[323] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLSTALLEDPATTERN, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_b_hb_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[323])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2569}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2668}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[280] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLSTICKSANDWICH, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_RvXR, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[280])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[324] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLSTICKSANDWICH, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_RvXR, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[324])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2605}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2704}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[281] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLTAKURI, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_b_hb, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[281])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[325] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLTAKURI, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_b_hb, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[325])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2641}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2740}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[282] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLTASUKIGAP, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_6_4v, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[282])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[326] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLTASUKIGAP, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_6_4v, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[326])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2677}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2776}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[283] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLTHRUSTING, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_6_4v, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[283])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[327] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLTHRUSTING, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_6_4v, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[327])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2713}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2812}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[284] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLTRISTAR, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_r_xr, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[284])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[328] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLTRISTAR, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_r_xr, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[328])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2749}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2848}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[285] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLUNIQUE3RIVER, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_BfHB, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[285])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[329] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLUNIQUE3RIVER, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_BfHB, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[329])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2785}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2884}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[286] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLUPSIDEGAP2CROWS, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_r_xr_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[286])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[330] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLUPSIDEGAP2CROWS, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_r_xr_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[330])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2821}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2920}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[287] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLXSIDEGAP3METHODS, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_fHBd_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[287])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[331] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLXSIDEGAP3METHODS, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_fHBd_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[331])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2857}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2956}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[288] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CEIL, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_qP_llmmn_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[288])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[332] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CEIL, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_qP_llmmn_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[332])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2983}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_volume_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[333] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CMF, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_Qa_y_1_Kq_q_6_6_gQ_a_fHBd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[333])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3021}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[334] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CMO, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_m_hhiixxyyz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[334])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2884}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3050}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[289] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CMO, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_m_hhiixxyyz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[289])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[335] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CMOU, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_iijjyyzz_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[335])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3079}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_wmaperiod, __pyx_mstate->__pyx_n_u_roc1period, __pyx_mstate->__pyx_n_u_roc2period, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[336] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_COPPOCK, __pyx_mstate->__pyx_kp_b_iso88591_FF___aq_Q_T_q_a_BfHBd_lR_kkxxy, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[336])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2913}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3110}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real0_data, __pyx_mstate->__pyx_n_u_real1_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[290] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CORREL, __pyx_mstate->__pyx_kp_b_iso88591_KL_Kq_q_Kq_q_7_a_2V82T_xr_R__ll, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[290])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[337] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CORREL, __pyx_mstate->__pyx_kp_b_iso88591_KL_Kq_q_Kq_q_7_a_2V82T_xr_R__ll, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[337])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3143}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[338] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_COS, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_a_kkllm_Qj_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[338])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2946}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3170}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[291] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_COS, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_a_kkllm_Qj_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[291])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[339] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_COSH, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_qP_llmmn_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[339])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2973}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3197}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[292] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_COSH, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_qP_llmmn_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[292])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[340] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CUMSUM, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_2V82T_xr_QRR___nnoop, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[340])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3000}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3224}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_rocperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[341] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CVI, __pyx_mstate->__pyx_kp_b_iso88591_E_aq_Q_Qa_y_1_6_a_fHBd_kYffrrss, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[341])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3257}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[293] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_DEMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_iijjyyzz_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[293])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[342] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_DEMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_iijjyyzz_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[342])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3029}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3286}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real0_data, __pyx_mstate->__pyx_n_u_real1_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[294] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_DIV, __pyx_mstate->__pyx_kp_b_iso88591_Kq_q_Kq_q_7_a_fHBd_iijjyyzz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[294])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[343] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_DIV, __pyx_mstate->__pyx_kp_b_iso88591_Kq_q_Kq_q_7_a_fHBd_iijjyyzz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[343])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3317}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outrealupperband, __pyx_mstate->__pyx_n_u_outrealmiddleband, __pyx_mstate->__pyx_n_u_outreallowerband}; + __pyx_mstate_global->__pyx_codeobj_tab[344] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_DONCHIAN, __pyx_mstate->__pyx_kp_b_iso88591_JK0_aq_Q_Qa_y_1_6_q_q_RvXRt6_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[344])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3355}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[345] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_DPO, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_m_hhiixxyyz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[345])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3060}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3384}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[295] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_DX, __pyx_mstate->__pyx_kp_b_iso88591_a_aq_Q_Qa_y_1_Kq_q_6_a_a_r_xr_V, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[295])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[346] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_DX, __pyx_mstate->__pyx_kp_b_iso88591_a_aq_Q_Qa_y_1_Kq_q_6_a_a_r_xr_V, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[346])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3095}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3419}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_volume_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[347] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_EFI, __pyx_mstate->__pyx_kp_b_iso88591_IJ_Kq_q_6_7_a_fHBd_jjkkwwx_y_H, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[347])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3451}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[348] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_EMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_m_hhiixxyyz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[348])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3480}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[296] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_EMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_m_hhiixxyyz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[296])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[349] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ER, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_r_xr_V82T_Z_gghhwwxx, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[349])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3509}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outbullpower, __pyx_mstate->__pyx_n_u_outbearpower}; + __pyx_mstate_global->__pyx_codeobj_tab[350] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ERI, __pyx_mstate->__pyx_kp_b_iso88591_ab_aq_Q_Qa_y_1_Kq_q_6_a_1_1_fHB, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[350])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3124}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3547}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[297] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_EXP, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_a_kkllm_Qj_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[297])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[351] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_EXP, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_a_kkllm_Qj_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[351])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3151}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3574}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[298] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_FLOOR, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_F_D_hb_LPQQ_mmnno_Ql, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[298])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[352] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_FLOOR, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_F_D_hb_LPQQ_mmnno_Ql, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[352])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3178}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3601}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[353] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_FOSC, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_iijjyyzz_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[353])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3630}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_leftbars, __pyx_mstate->__pyx_n_u_rightbars, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outswinghigh, __pyx_mstate->__pyx_n_u_outswinglow}; + __pyx_mstate_global->__pyx_codeobj_tab[354] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_FRACTAL, __pyx_mstate->__pyx_kp_b_iso88591_I___aq_Q_Qa_y_1_6_1_BfHBd_lR_hh, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[354])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3666}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outhaopen, __pyx_mstate->__pyx_n_u_outhahigh, __pyx_mstate->__pyx_n_u_outhalow, __pyx_mstate->__pyx_n_u_outhaclose}; + __pyx_mstate_global->__pyx_codeobj_tab[355] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_HA, __pyx_mstate->__pyx_kp_b_iso88591_8_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[355])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3711}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[356] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_HMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_m_hhiixxyyz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[356])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3740}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[299] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_HT_DCPERIOD, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_VWWccddssttu_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[299])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[357] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_HT_DCPERIOD, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_VWWccddssttu_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[357])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3205}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3767}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[300] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_HT_DCPHASE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_r_xr_V82T_UVVbbccrrs, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[300])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[358] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_HT_DCPHASE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_r_xr_V82T_UVVbbccrrs, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[358])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3232}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3794}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinphase, __pyx_mstate->__pyx_n_u_outquadrature}; - __pyx_mstate_global->__pyx_codeobj_tab[301] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_HT_PHASOR, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_A_b_hb_F_D_TUUaabbqqrr, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[301])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[359] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_HT_PHASOR, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_A_b_hb_F_D_TUUaabbqqrr, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[359])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3262}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3824}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outsine, __pyx_mstate->__pyx_n_u_outleadsine}; - __pyx_mstate_global->__pyx_codeobj_tab[302] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_HT_SINE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_BfHBd_lRSS___ooppzz, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[302])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[360] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_HT_SINE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_BfHBd_lRSS___ooppzz, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[360])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3292}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3854}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[303] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_HT_TRENDLINE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_WXXddeettuuv, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[303])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[361] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_HT_TRENDLINE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_WXXddeettuuv, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[361])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3319}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3881}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[304] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_HT_TRENDMODE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_6_4vXRt_WXXddeettuuv_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[304])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[362] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_HT_TRENDMODE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_6_4vXRt_WXXddeettuuv_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[362])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3346}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3908}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[305] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_IMI, __pyx_mstate->__pyx_kp_b_iso88591_GH_aq_Q_Kq_q_6_a_fHBd_m_hhiiuuv, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[305])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[363] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_IMI, __pyx_mstate->__pyx_kp_b_iso88591_GH_aq_Q_Kq_q_6_a_fHBd_m_hhiiuuv, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[363])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3378}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3940}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[306] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_KAMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_iijjyyzz_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[306])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[364] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_KAMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_iijjyyzz_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[364])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3969}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_atrperiod, __pyx_mstate->__pyx_n_u_nbdev, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outrealupperband, __pyx_mstate->__pyx_n_u_outrealmiddleband, __pyx_mstate->__pyx_n_u_outreallowerband}; + __pyx_mstate_global->__pyx_codeobj_tab[365] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_KC, __pyx_mstate->__pyx_kp_b_iso88591_x_y_P_P_Q_6_aq_Q_Qa_y_1_Kq_q_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[365])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {8, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4012}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_fastk_period, __pyx_mstate->__pyx_n_u_slowk_period, __pyx_mstate->__pyx_n_u_slowk_matype, __pyx_mstate->__pyx_n_u_slowd_period, __pyx_mstate->__pyx_n_u_slowd_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outk, __pyx_mstate->__pyx_n_u_outd, __pyx_mstate->__pyx_n_u_outj}; + __pyx_mstate_global->__pyx_codeobj_tab[366] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_KDJ, __pyx_mstate->__pyx_kp_b_iso88591_a_V_V_l_l_F_F_G_aq_Q_Qa_y_1_Kq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[366])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3407}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4057}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[307] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_LINEARREG, __pyx_mstate->__pyx_kp_b_iso88591_12_aq_Q_T_q_a_b_hb_F_D_Taabbnno, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[307])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[367] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_LINEARREG, __pyx_mstate->__pyx_kp_b_iso88591_12_aq_Q_T_q_a_b_hb_F_D_Taabbnno, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[367])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3436}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4086}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[308] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_LINEARREG_ANGLE, __pyx_mstate->__pyx_kp_b_iso88591_78_aq_Q_T_q_a_BfHBd_lZgghhttu_v, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[308])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[368] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_LINEARREG_ANGLE, __pyx_mstate->__pyx_kp_b_iso88591_78_aq_Q_T_q_a_BfHBd_lZgghhttu_v, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[368])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3465}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4115}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[309] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_LINEARREG_INTERCEPT, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBdR_kkllxxy_z_I_I, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[309])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[369] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_LINEARREG_INTERCEPT, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBdR_kkllxxy_z_I_I, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[369])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3494}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4144}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[310] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_LINEARREG_SLOPE, __pyx_mstate->__pyx_kp_b_iso88591_78_aq_Q_T_q_a_BfHBd_lZgghhttu_v, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[310])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[370] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_LINEARREG_SLOPE, __pyx_mstate->__pyx_kp_b_iso88591_78_aq_Q_T_q_a_BfHBd_lZgghhttu_v, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[370])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3523}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4173}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[311] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_LN, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_r_xr_V82T_QlZ_jjkkl, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[311])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[371] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_LN, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_r_xr_V82T_QlZ_jjkkl, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[371])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3550}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4200}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[312] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_LOG10, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_F_D_hb_LPQQ_mmnno_Ql, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[312])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[372] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_LOG10, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_F_D_hb_LPQQ_mmnno_Ql, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[372])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3577}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4227}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[313] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MA, __pyx_mstate->__pyx_kp_b_iso88591_B_aq_Q_T_q_a_r_xr_V82T_Zccddppq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[313])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[373] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MA, __pyx_mstate->__pyx_kp_b_iso88591_B_aq_Q_T_q_a_r_xr_V82T_Zccddppq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[373])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3607}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4257}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_signalperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outmacd, __pyx_mstate->__pyx_n_u_outmacdsignal, __pyx_mstate->__pyx_n_u_outmacdhist}; - __pyx_mstate_global->__pyx_codeobj_tab[314] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MACD, __pyx_mstate->__pyx_kp_b_iso88591_DD_2_aq_Q_T_q_a_A_6_4vXRt_iixxy, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[314])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[374] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MACD, __pyx_mstate->__pyx_kp_b_iso88591_DD_2_aq_Q_T_q_a_A_6_4vXRt_iixxy, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[374])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {7, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3644}; + const __Pyx_PyCode_New_function_description descr = {7, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4294}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_fastmatype, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_slowmatype, __pyx_mstate->__pyx_n_u_signalperiod, __pyx_mstate->__pyx_n_u_signalmatype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outmacd, __pyx_mstate->__pyx_n_u_outmacdsignal, __pyx_mstate->__pyx_n_u_outmacdhist}; - __pyx_mstate_global->__pyx_codeobj_tab[315] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MACDEXT, __pyx_mstate->__pyx_kp_b_iso88591_GGZZr_s_F_F_a_8_aq_Q_T_q_a_A_Bf, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[315])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[375] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MACDEXT, __pyx_mstate->__pyx_kp_b_iso88591_GGZZr_s_F_F_a_8_aq_Q_T_q_a_A_Bf, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[375])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3684}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4334}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_signalperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outmacd, __pyx_mstate->__pyx_n_u_outmacdsignal, __pyx_mstate->__pyx_n_u_outmacdhist}; - __pyx_mstate_global->__pyx_codeobj_tab[316] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MACDFIX, __pyx_mstate->__pyx_kp_b_iso88591_0_aq_Q_T_q_a_A_BfHBd_lRaabbnnoo, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[316])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[376] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MACDFIX, __pyx_mstate->__pyx_kp_b_iso88591_0_aq_Q_T_q_a_A_BfHBd_lRaabbnnoo, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[376])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3719}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4369}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_fastlimit, __pyx_mstate->__pyx_n_u_slowlimit, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outmama, __pyx_mstate->__pyx_n_u_outfama}; - __pyx_mstate_global->__pyx_codeobj_tab[317] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MAMA, __pyx_mstate->__pyx_kp_b_iso88591_EQ_aq_Q_T_q_a_a_6_4vXRt_gghhttu, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[317])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[377] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MAMA, __pyx_mstate->__pyx_kp_b_iso88591_EQ_aq_Q_T_q_a_a_6_4vXRt_gghhttu, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[377])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4402}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_volume_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[378] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MARKETFI, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_Qa_y_1_6_6_a_a_RvXRt6_4_S, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[378])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3752}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4435}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[379] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MASSI, __pyx_mstate->__pyx_kp_b_iso88591_G___aq_Q_Qa_y_1_6_a_F_D_hb_LP_h, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[379])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4468}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_periods, __pyx_mstate->__pyx_n_u_minperiod, __pyx_mstate->__pyx_n_u_maxperiod, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_periods_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[318] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MAVP, __pyx_mstate->__pyx_kp_b_iso88591_Jaaxxy_aq_Q_k_9G1_6_a_6_4vXRt_j, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[318])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[380] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MAVP, __pyx_mstate->__pyx_kp_b_iso88591_Jaaxxy_aq_Q_k_9G1_6_a_6_4vXRt_j, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[380])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3787}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4503}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[319] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MAX, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_m_hhiixxyyz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[319])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[381] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MAX, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_m_hhiixxyyz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[381])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3816}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4532}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[320] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MAXINDEX, __pyx_mstate->__pyx_kp_b_iso88591_01_aq_Q_T_q_RvXRt6_4_S_aammnn_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[320])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[382] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MAXINDEX, __pyx_mstate->__pyx_kp_b_iso88591_01_aq_Q_T_q_RvXRt6_4_S_aammnn_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[382])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3845}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4561}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[321] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MEDPRICE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_Qa_y_1_6_a_RvXRt6_4_S___kk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[321])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[383] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MEDPRICE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_Qa_y_1_6_a_RvXRt6_4_S___kk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[383])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3875}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4591}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_volume_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[322] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MFI, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_Qa_y_1_Kq_q_6_6_gQ_a_fHBd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[322])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[384] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MFI, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_Qa_y_1_Kq_q_6_6_gQ_a_fHBd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[384])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3913}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4629}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[323] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MIDPOINT, __pyx_mstate->__pyx_kp_b_iso88591_01_aq_Q_T_q_a_RvXRt6_4_S_aammnn, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[323])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[385] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MIDPOINT, __pyx_mstate->__pyx_kp_b_iso88591_01_aq_Q_T_q_a_RvXRt6_4_S_aammnn, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[385])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3942}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4658}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[324] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MIDPRICE, __pyx_mstate->__pyx_kp_b_iso88591_JK_aq_Q_Qa_y_1_6_a_RvXRt6_4_S_k, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[324])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[386] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MIDPRICE, __pyx_mstate->__pyx_kp_b_iso88591_JK_aq_Q_Qa_y_1_6_a_RvXRt6_4_S_k, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[386])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3974}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4690}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[325] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MIN, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_m_hhiixxyyz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[325])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[387] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MIN, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_m_hhiixxyyz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[387])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4003}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4719}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[326] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MININDEX, __pyx_mstate->__pyx_kp_b_iso88591_01_aq_Q_T_q_RvXRt6_4_S_aammnn_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[326])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[388] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MININDEX, __pyx_mstate->__pyx_kp_b_iso88591_01_aq_Q_T_q_RvXRt6_4_S_aammnn_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[388])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4032}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4748}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outmin, __pyx_mstate->__pyx_n_u_outmax}; - __pyx_mstate_global->__pyx_codeobj_tab[327] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MINMAX, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_Q_Q_2V82T_xr_Q___kkll, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[327])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[389] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MINMAX, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_Q_Q_2V82T_xr_Q___kkll, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[389])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4064}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4780}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outminidx, __pyx_mstate->__pyx_n_u_outmaxidx}; - __pyx_mstate_global->__pyx_codeobj_tab[328] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MINMAXINDEX, __pyx_mstate->__pyx_kp_b_iso88591_34_aq_Q_T_q_fHBd_Vccddppq_r_A_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[328])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[390] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MINMAXINDEX, __pyx_mstate->__pyx_kp_b_iso88591_34_aq_Q_T_q_fHBd_Vccddppq_r_A_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[390])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4096}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4812}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[329] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MINUS_DI, __pyx_mstate->__pyx_kp_b_iso88591_fg_aq_Q_Qa_y_1_Kq_q_6_a_a_RvXRt, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[329])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[391] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MINUS_DI, __pyx_mstate->__pyx_kp_b_iso88591_fg_aq_Q_Qa_y_1_Kq_q_6_a_a_RvXRt, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[391])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4131}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4847}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[330] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MINUS_DM, __pyx_mstate->__pyx_kp_b_iso88591_JK_aq_Q_Qa_y_1_6_a_RvXRt6_4_S_k, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[330])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[392] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MINUS_DM, __pyx_mstate->__pyx_kp_b_iso88591_JK_aq_Q_Qa_y_1_6_a_RvXRt6_4_S_k, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[392])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4163}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4879}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[331] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MOM, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_m_hhiixxyyz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[331])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[393] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MOM, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_m_hhiixxyyz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[393])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4192}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4908}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real0_data, __pyx_mstate->__pyx_n_u_real1_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[332] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MULT, __pyx_mstate->__pyx_kp_b_iso88591_Kq_q_Kq_q_7_a_6_4vXRt_P_jjkkzz, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[332])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[394] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MULT, __pyx_mstate->__pyx_kp_b_iso88591_Kq_q_Kq_q_7_a_6_4vXRt_P_jjkkzz, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[394])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4223}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4939}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[333] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_NATR, __pyx_mstate->__pyx_kp_b_iso88591_bc_aq_Q_Qa_y_1_Kq_q_6_a_a_6_4vX, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[333])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[395] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_NATR, __pyx_mstate->__pyx_kp_b_iso88591_bc_aq_Q_Qa_y_1_Kq_q_6_a_a_6_4vX, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[395])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4974}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_volume_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[396] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_NVI, __pyx_mstate->__pyx_kp_b_iso88591_Kq_q_6_7_a_fHBd_jjkkzz_Qj_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[396])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4258}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5004}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_volume_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[334] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_OBV, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_6_6_a_fHBd_n_iijjyyzz_Qj_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[334])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[397] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_OBV, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_6_6_a_fHBd_n_iijjyyzz_Qj_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[397])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5035}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_percentile, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[398] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_PERCENTILE, __pyx_mstate->__pyx_kp_b_iso88591_2J_aq_Q_T_q_a_r_xr_V82T_Ubboopp, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[398])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5065}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[399] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_PERCENTRANK, __pyx_mstate->__pyx_kp_b_iso88591_34_aq_Q_T_q_a_fHBd_Vccddppq_r_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[399])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4289}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5094}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[335] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_PLUS_DI, __pyx_mstate->__pyx_kp_b_iso88591_ef_aq_Q_Qa_y_1_Kq_q_6_a_a_BfHBd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[335])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[400] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_PLUS_DI, __pyx_mstate->__pyx_kp_b_iso88591_ef_aq_Q_Qa_y_1_Kq_q_6_a_a_BfHBd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[400])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4324}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5129}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[336] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_PLUS_DM, __pyx_mstate->__pyx_kp_b_iso88591_IJ_aq_Q_Qa_y_1_6_a_BfHBd_lR_jjk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[336])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[401] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_PLUS_DM, __pyx_mstate->__pyx_kp_b_iso88591_IJ_aq_Q_Qa_y_1_6_a_BfHBd_lR_jjk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[401])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4356}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5161}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[337] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_PPO, __pyx_mstate->__pyx_kp_b_iso88591_CC_aq_Q_T_q_a_fHBd_m_hhqqrr_O_O, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[337])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[402] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_PPO, __pyx_mstate->__pyx_kp_b_iso88591_CC_aq_Q_T_q_a_fHBd_m_hhqqrr_O_O, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[402])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5192}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_volume_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[403] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_PVI, __pyx_mstate->__pyx_kp_b_iso88591_Kq_q_6_7_a_fHBd_jjkkzz_Qj_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[403])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5222}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_volume_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[404] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_PVO, __pyx_mstate->__pyx_kp_b_iso88591_EE_6_V6_a_fHBd_P_jjsst_u_A_A_B, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[404])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5253}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_volume_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[405] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_PVT, __pyx_mstate->__pyx_kp_b_iso88591_Kq_q_6_7_a_fHBd_jjkkzz_Qj_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[405])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5283}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[406] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_QSTICK, __pyx_mstate->__pyx_kp_b_iso88591_JK_aq_Q_Kq_q_6_a_2V82T_xr_Q_kkl, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[406])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4387}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5315}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[338] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ROC, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_m_hhiixxyyz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[338])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[407] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_RMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_m_hhiixxyyz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[407])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4416}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5344}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[339] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ROCP, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_iijjyyzz_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[339])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[408] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ROC, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_m_hhiixxyyz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[408])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4445}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5373}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[340] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ROCR, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_iijjyyzz_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[340])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[409] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ROCP, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_iijjyyzz_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[409])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4474}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5402}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[341] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ROCR100, __pyx_mstate->__pyx_kp_b_iso88591_0_aq_Q_T_q_a_BfHBd_lR___llmm_Qn, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[341])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[410] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ROCR, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_iijjyyzz_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[410])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4503}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5431}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[411] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ROCR100, __pyx_mstate->__pyx_kp_b_iso88591_0_aq_Q_T_q_a_BfHBd_lR___llmm_Qn, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[411])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5460}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[342] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_RSI, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_m_hhiixxyyz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[342])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[412] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_RSI, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_m_hhiixxyyz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[412])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5489}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_stddevperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[413] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_RVI, __pyx_mstate->__pyx_kp_b_iso88591_C1_aq_Q_T_q_a_fHBd_m_jjkkwwx_y, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[413])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4532}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5519}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_volume_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[414] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_RVOL, __pyx_mstate->__pyx_kp_b_iso88591_6_V6_a_6_4vXRt_Q___kkll_Qk_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[414])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5548}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_acceleration, __pyx_mstate->__pyx_n_u_maximum, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[343] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_SAR, __pyx_mstate->__pyx_kp_b_iso88591_E_a_aq_Q_Qa_y_1_6_a_fHBd_kYhhrr, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[343])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[415] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_SAR, __pyx_mstate->__pyx_kp_b_iso88591_E_a_aq_Q_Qa_y_1_6_a_fHBd_kYhhrr, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[415])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {10, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4565}; + const __Pyx_PyCode_New_function_description descr = {10, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5581}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_startvalue, __pyx_mstate->__pyx_n_u_offsetonreverse, __pyx_mstate->__pyx_n_u_accelerationinitlong, __pyx_mstate->__pyx_n_u_accelerationlong, __pyx_mstate->__pyx_n_u_accelerationmaxlong, __pyx_mstate->__pyx_n_u_accelerationinitshort, __pyx_mstate->__pyx_n_u_accelerationshort, __pyx_mstate->__pyx_n_u_accelerationmaxshort, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[344] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_SAREXT, __pyx_mstate->__pyx_kp_b_iso88591_Hb_c_B_B_f_f_F_F_i_i_N_N_o_o_p, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[344])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[416] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_SAREXT, __pyx_mstate->__pyx_kp_b_iso88591_Hb_c_B_B_f_f_F_F_i_i_N_N_o_o_p, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[416])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4604}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5620}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[345] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_SIN, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_a_kkllm_Qj_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[345])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[417] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_SIN, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_a_kkllm_Qj_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[417])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4631}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5647}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[346] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_SINH, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_qP_llmmn_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[346])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[418] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_SINH, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_qP_llmmn_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[418])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4658}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5674}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[347] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_SMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_m_hhiixxyyz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[347])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[419] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_SMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_m_hhiixxyyz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[419])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {7, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5703}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_signalperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outsmi, __pyx_mstate->__pyx_n_u_outsmisignal}; + __pyx_mstate_global->__pyx_codeobj_tab[420] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_SMI, __pyx_mstate->__pyx_kp_b_iso88591_ay_z_R_R_j_j_k_4_aq_Q_Qa_y_1_Kq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[420])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4687}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5744}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[348] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_SQRT, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_qP_llmmn_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[348])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[421] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_SQRT, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_qP_llmmn_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[421])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4714}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5771}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_nbdev, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[349] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_STDDEV, __pyx_mstate->__pyx_kp_b_iso88591_Fa_aq_Q_T_q_a_2V82T_xr_Q_ffggss, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[349])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[422] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_STDDEV, __pyx_mstate->__pyx_kp_b_iso88591_Fa_aq_Q_T_q_a_2V82T_xr_Q_ffggss, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[422])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {8, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4744}; + const __Pyx_PyCode_New_function_description descr = {8, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5801}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_fastk_period, __pyx_mstate->__pyx_n_u_slowk_period, __pyx_mstate->__pyx_n_u_slowk_matype, __pyx_mstate->__pyx_n_u_slowd_period, __pyx_mstate->__pyx_n_u_slowd_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outslowk, __pyx_mstate->__pyx_n_u_outslowd}; - __pyx_mstate_global->__pyx_codeobj_tab[350] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_STOCH, __pyx_mstate->__pyx_kp_b_iso88591_c_X_X_m_m_G_G_H_6_aq_Q_Qa_y_1_K, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[350])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[423] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_STOCH, __pyx_mstate->__pyx_kp_b_iso88591_c_X_X_m_m_G_G_H_6_aq_Q_Qa_y_1_K, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[423])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4786}; + const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5843}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_fastk_period, __pyx_mstate->__pyx_n_u_fastd_period, __pyx_mstate->__pyx_n_u_fastd_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outfastk, __pyx_mstate->__pyx_n_u_outfastd}; - __pyx_mstate_global->__pyx_codeobj_tab[351] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_STOCHF, __pyx_mstate->__pyx_kp_b_iso88591_d_Y_Y_Z_2_aq_Q_Qa_y_1_Kq_q_6_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[351])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[424] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_STOCHF, __pyx_mstate->__pyx_kp_b_iso88591_d_Y_Y_Z_2_aq_Q_Qa_y_1_Kq_q_6_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[424])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4826}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5883}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_fastk_period, __pyx_mstate->__pyx_n_u_fastd_period, __pyx_mstate->__pyx_n_u_fastd_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outfastk, __pyx_mstate->__pyx_n_u_outfastd}; - __pyx_mstate_global->__pyx_codeobj_tab[352] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_STOCHRSI, __pyx_mstate->__pyx_kp_b_iso88591_0HHbb_0_aq_Q_T_q_q_q_RvXRt6_4_S, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[352])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[425] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_STOCHRSI, __pyx_mstate->__pyx_kp_b_iso88591_0HHbb_0_aq_Q_T_q_q_q_RvXRt6_4_S, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[425])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4861}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5918}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real0_data, __pyx_mstate->__pyx_n_u_real1_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[353] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_SUB, __pyx_mstate->__pyx_kp_b_iso88591_Kq_q_Kq_q_7_a_fHBd_iijjyyzz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[353])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[426] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_SUB, __pyx_mstate->__pyx_kp_b_iso88591_Kq_q_Kq_q_7_a_fHBd_iijjyyzz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[426])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4892}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5949}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[354] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_SUM, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_m_hhiixxyyz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[354])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[427] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_SUM, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_m_hhiixxyyz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[427])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4921}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5978}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_multiplier, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outinteger}; + __pyx_mstate_global->__pyx_codeobj_tab[428] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_SUPERTREND, __pyx_mstate->__pyx_kp_b_iso88591_i_A_A_B_0_aq_Q_Qa_y_1_Kq_q_6_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[428])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6017}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_vfactor, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[355] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_T3, __pyx_mstate->__pyx_kp_b_iso88591_B_aq_Q_T_q_a_r_xr_V82T_Zddeeqqr, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[355])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[429] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_T3, __pyx_mstate->__pyx_kp_b_iso88591_B_aq_Q_T_q_a_r_xr_V82T_Zddeeqqr, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[429])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4951}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6047}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[356] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_TAN, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_a_kkllm_Qj_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[356])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[430] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_TAN, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_a_kkllm_Qj_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[430])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4978}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6074}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[357] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_TANH, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_qP_llmmn_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[357])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[431] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_TANH, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_qP_llmmn_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[431])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5005}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6101}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[358] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_TEMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_iijjyyzz_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[358])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[432] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_TEMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_iijjyyzz_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[432])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5034}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6130}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[359] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_TRANGE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_Qa_y_1_Kq_q_6_a_a_2V82T_xr, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[359])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[433] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_TRANGE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_Qa_y_1_Kq_q_6_a_a_2V82T_xr, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[433])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5067}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6163}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[360] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_TRIMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_F_D_hb_LP_jjkkzz_Ql, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[360])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[434] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_TRIMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_F_D_hb_LP_jjkkzz_Ql, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[434])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5096}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6192}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[361] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_TRIX, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_iijjyyzz_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[361])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[435] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_TRIX, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_iijjyyzz_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[435])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5125}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6221}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[362] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_TSF, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_m_hhiixxyyz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[362])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[436] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_TSF, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_m_hhiixxyyz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[436])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6250}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_firstperiod, __pyx_mstate->__pyx_n_u_secondperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[437] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_TSI, __pyx_mstate->__pyx_kp_b_iso88591_DA_aq_Q_T_q_a_fHBd_n_kkllxxy_z, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[437])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5154}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6280}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[363] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_TYPPRICE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_Qa_y_1_Kq_q_6_a_a_RvXRt6_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[363])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[438] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_TYPPRICE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_Qa_y_1_Kq_q_6_a_a_RvXRt6_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[438])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5187}; + const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6313}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod1, __pyx_mstate->__pyx_n_u_timeperiod2, __pyx_mstate->__pyx_n_u_timeperiod3, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[364] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ULTOSC, __pyx_mstate->__pyx_kp_b_iso88591_d_W_W_X_aq_Q_Qa_y_1_Kq_q_6_a_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[364])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[439] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ULTOSC, __pyx_mstate->__pyx_kp_b_iso88591_d_W_W_X_aq_Q_Qa_y_1_Kq_q_6_a_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[439])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5224}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6350}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_nbdev, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[365] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_VAR, __pyx_mstate->__pyx_kp_b_iso88591_C1_aq_Q_T_q_a_fHBd_m_ccddppq_r, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[365])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[440] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_VAR, __pyx_mstate->__pyx_kp_b_iso88591_C1_aq_Q_T_q_a_fHBd_m_ccddppq_r, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[440])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5254}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6380}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[441] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_VHF, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_m_hhiixxyyz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[441])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6409}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outplusvi, __pyx_mstate->__pyx_n_u_outminusvi}; + __pyx_mstate_global->__pyx_codeobj_tab[442] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_VORTEX, __pyx_mstate->__pyx_kp_b_iso88591_de_aq_Q_Qa_y_1_Kq_q_6_a_2V82T_x, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[442])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6447}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_volume_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[443] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_VWAP, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_Qa_y_1_Kq_q_6_6_gQ_a_6_4vX, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[443])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6483}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_volume_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[444] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_VWMA, __pyx_mstate->__pyx_kp_b_iso88591_IJ_aq_Q_6_6_a_6_4vXRt_jjkkwwx_y, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[444])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6516}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[445] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_WAD, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_Qa_y_1_Kq_q_6_a_a_fHBd_kYf, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[445])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6549}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[366] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_WCLPRICE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_Qa_y_1_Kq_q_6_a_a_RvXRt6_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[366])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[446] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_WCLPRICE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_Qa_y_1_Kq_q_6_a_a_RvXRt6_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[446])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5287}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6582}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[367] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_WILLR, __pyx_mstate->__pyx_kp_b_iso88591_cd_aq_Q_Qa_y_1_Kq_q_6_a_a_F_D_h, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[367])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[447] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_WILLR, __pyx_mstate->__pyx_kp_b_iso88591_cd_aq_Q_Qa_y_1_Kq_q_6_a_a_F_D_h, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[447])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5322}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6617}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[368] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_WMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_m_hhiixxyyz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[368])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[448] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_WMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_m_hhiixxyyz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[448])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6646}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; + __pyx_mstate_global->__pyx_codeobj_tab[449] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ZLEMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_F_D_hb_LP_jjkkzz_Ql, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[449])) goto bad; } Py_DECREF(tuple_dedup_map); return 0; @@ -91154,6 +109442,52 @@ static PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject *key) { } #endif +/* PyObjectFormatAndDecref */ +static CYTHON_INLINE PyObject* __Pyx_PyObject_FormatSimpleAndDecref(PyObject* s, PyObject* f) { + if (unlikely(!s)) return NULL; + if (likely(PyUnicode_CheckExact(s))) return s; + return __Pyx_PyObject_FormatAndDecref(s, f); +} +static CYTHON_INLINE PyObject* __Pyx_PyObject_FormatAndDecref(PyObject* s, PyObject* f) { + PyObject *result; + if (unlikely(!s)) return NULL; + result = PyObject_Format(s, f); + Py_DECREF(s); + return result; +} + +/* PyObjectVectorCallKwBuilder */ +#if CYTHON_VECTORCALL +static int __Pyx_VectorcallBuilder_AddArg(PyObject *key, PyObject *value, PyObject *builder, PyObject **args, int n) { + (void)__Pyx_PyObject_FastCallDict; + Py_INCREF(key); + if (__Pyx_PyTuple_SET_ITEM(builder, n, key) != (0)) return -1; + args[n] = value; + return 0; +} +CYTHON_UNUSED static int __Pyx_VectorcallBuilder_AddArg_Check(PyObject *key, PyObject *value, PyObject *builder, PyObject **args, int n) { + (void)__Pyx_VectorcallBuilder_AddArgStr; + if (unlikely(!PyUnicode_Check(key))) { + PyErr_SetString(PyExc_TypeError, "keywords must be strings"); + return -1; + } + return __Pyx_VectorcallBuilder_AddArg(key, value, builder, args, n); +} +static int __Pyx_VectorcallBuilder_AddArgStr(const char *key, PyObject *value, PyObject *builder, PyObject **args, int n) { + PyObject *pyKey = PyUnicode_FromString(key); + if (!pyKey) return -1; + return __Pyx_VectorcallBuilder_AddArg(pyKey, value, builder, args, n); +} +#else // CYTHON_VECTORCALL +CYTHON_UNUSED static int __Pyx_VectorcallBuilder_AddArg_Check(PyObject *key, PyObject *value, PyObject *builder, CYTHON_UNUSED PyObject **args, CYTHON_UNUSED int n) { + if (unlikely(!PyUnicode_Check(key))) { + PyErr_SetString(PyExc_TypeError, "keywords must be strings"); + return -1; + } + return PyDict_SetItem(builder, key, value); +} +#endif + /* PyObjectFastCallMethod */ #if !CYTHON_VECTORCALL || PY_VERSION_HEX < 0x03090000 static PyObject *__Pyx_PyObject_FastCallMethod(PyObject *name, PyObject *const *args, size_t nargsf) { @@ -91712,38 +110046,6 @@ static CYTHON_INLINE PyObject* __Pyx_PyLong_AddObjC(PyObject *op1, PyObject *op2 } #endif -/* PyObjectVectorCallKwBuilder */ -#if CYTHON_VECTORCALL -static int __Pyx_VectorcallBuilder_AddArg(PyObject *key, PyObject *value, PyObject *builder, PyObject **args, int n) { - (void)__Pyx_PyObject_FastCallDict; - Py_INCREF(key); - if (__Pyx_PyTuple_SET_ITEM(builder, n, key) != (0)) return -1; - args[n] = value; - return 0; -} -CYTHON_UNUSED static int __Pyx_VectorcallBuilder_AddArg_Check(PyObject *key, PyObject *value, PyObject *builder, PyObject **args, int n) { - (void)__Pyx_VectorcallBuilder_AddArgStr; - if (unlikely(!PyUnicode_Check(key))) { - PyErr_SetString(PyExc_TypeError, "keywords must be strings"); - return -1; - } - return __Pyx_VectorcallBuilder_AddArg(key, value, builder, args, n); -} -static int __Pyx_VectorcallBuilder_AddArgStr(const char *key, PyObject *value, PyObject *builder, PyObject **args, int n) { - PyObject *pyKey = PyUnicode_FromString(key); - if (!pyKey) return -1; - return __Pyx_VectorcallBuilder_AddArg(pyKey, value, builder, args, n); -} -#else // CYTHON_VECTORCALL -CYTHON_UNUSED static int __Pyx_VectorcallBuilder_AddArg_Check(PyObject *key, PyObject *value, PyObject *builder, CYTHON_UNUSED PyObject **args, CYTHON_UNUSED int n) { - if (unlikely(!PyUnicode_Check(key))) { - PyErr_SetString(PyExc_TypeError, "keywords must be strings"); - return -1; - } - return PyDict_SetItem(builder, key, value); -} -#endif - /* CIntToPyUnicode */ static CYTHON_INLINE PyObject* __Pyx_uchar___Pyx_PyUnicode_From_Py_ssize_t(Py_ssize_t value, Py_ssize_t width, char padding_char) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC @@ -91879,65 +110181,6 @@ static CYTHON_INLINE PyObject* __Pyx_PyList_GetSlice( } #endif // CYTHON_COMPILING_IN_CPYTHON -/* PyObjectFormatAndDecref */ -static CYTHON_INLINE PyObject* __Pyx_PyObject_FormatSimpleAndDecref(PyObject* s, PyObject* f) { - if (unlikely(!s)) return NULL; - if (likely(PyUnicode_CheckExact(s))) return s; - return __Pyx_PyObject_FormatAndDecref(s, f); -} -static CYTHON_INLINE PyObject* __Pyx_PyObject_FormatAndDecref(PyObject* s, PyObject* f) { - PyObject *result; - if (unlikely(!s)) return NULL; - result = PyObject_Format(s, f); - Py_DECREF(s); - return result; -} - -/* py_dict_keys */ -static CYTHON_INLINE PyObject* __Pyx_PyDict_Keys(PyObject* d) { - return __Pyx_CallUnboundCMethod0(&__pyx_mstate_global->__pyx_umethod_PyDict_Type_keys, d); -} - -/* pybuiltin_invalid (used by pyint_simplify) */ -static void __Pyx_PyBuiltin_Invalid(PyObject *obj, const char *type_name, const char *argname) { - __Pyx_TypeName obj_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(obj)); - if (argname) { - PyErr_Format(PyExc_TypeError, - "Argument '%.200s' has incorrect type (expected %.200s, got " __Pyx_FMT_TYPENAME ")", - argname, type_name, obj_type_name - ); - } else { - PyErr_Format(PyExc_TypeError, - "Expected %.200s, got " __Pyx_FMT_TYPENAME, - type_name, obj_type_name - ); - } - __Pyx_DECREF_TypeName(obj_type_name); -} - -/* pyint_simplify */ -static CYTHON_INLINE int __Pyx_PyInt_FromNumber(PyObject **number_var, const char *argname, int accept_none) { - PyObject *number = *number_var; - if (likely((accept_none && number == Py_None) || PyLong_CheckExact(number))) { - return 0; - } - PyObject *int_object; - if (likely(PyNumber_Check(number))) { - int_object = PyNumber_Long(number); - if (unlikely(!int_object)) goto bad; - } else { - __Pyx_PyBuiltin_Invalid(number, "int", argname); - goto bad; - } - *number_var = int_object; - Py_DECREF(number); - return 0; -bad: - *number_var = NULL; - Py_DECREF(number); - return -1; -} - /* SliceObject */ static CYTHON_INLINE PyObject* __Pyx_PyObject_GetSlice(PyObject* obj, Py_ssize_t cstart, Py_ssize_t cstop, @@ -92146,6 +110389,125 @@ static PyTypeObject *__Pyx_ImportType_3_2_8(PyObject *module, const char *module } #endif +/* ImportImpl (used by Import) */ +static int __Pyx__Import_GetModule(PyObject *qualname, PyObject **module) { + PyObject *imported_module = PyImport_GetModule(qualname); + if (unlikely(!imported_module)) { + *module = NULL; + if (PyErr_Occurred()) { + return -1; + } + return 0; + } + *module = imported_module; + return 1; +} +static int __Pyx__Import_Lookup(PyObject *qualname, PyObject *const *imported_names, Py_ssize_t len_imported_names, PyObject **module) { + PyObject *imported_module; + PyObject *top_level_package_name; + Py_ssize_t i; + int status, module_found; + Py_ssize_t dot_index; + module_found = __Pyx__Import_GetModule(qualname, &imported_module); + if (unlikely(!module_found || module_found == -1)) { + *module = NULL; + return module_found; + } + if (imported_names) { + for (i = 0; i < len_imported_names; i++) { + PyObject *imported_name = imported_names[i]; +#if __PYX_LIMITED_VERSION_HEX < 0x030d0000 + int has_imported_attribute = PyObject_HasAttr(imported_module, imported_name); +#else + int has_imported_attribute = PyObject_HasAttrWithError(imported_module, imported_name); + if (unlikely(has_imported_attribute == -1)) goto error; +#endif + if (!has_imported_attribute) { + goto not_found; + } + } + *module = imported_module; + return 1; + } + dot_index = PyUnicode_FindChar(qualname, '.', 0, PY_SSIZE_T_MAX, 1); + if (dot_index == -1) { + *module = imported_module; + return 1; + } + if (unlikely(dot_index == -2)) goto error; + top_level_package_name = PyUnicode_Substring(qualname, 0, dot_index); + if (unlikely(!top_level_package_name)) goto error; + Py_DECREF(imported_module); + status = __Pyx__Import_GetModule(top_level_package_name, module); + Py_DECREF(top_level_package_name); + return status; +error: + Py_DECREF(imported_module); + *module = NULL; + return -1; +not_found: + Py_DECREF(imported_module); + *module = NULL; + return 0; +} +static PyObject *__Pyx__Import(PyObject *name, PyObject *const *imported_names, Py_ssize_t len_imported_names, PyObject *qualname, PyObject *moddict, int level) { + PyObject *module = 0; + PyObject *empty_dict = 0; + PyObject *from_list = 0; + int module_found; + if (!qualname) { + qualname = name; + } + module_found = __Pyx__Import_Lookup(qualname, imported_names, len_imported_names, &module); + if (likely(module_found == 1)) { + return module; + } else if (unlikely(module_found == -1)) { + return NULL; + } + empty_dict = PyDict_New(); + if (unlikely(!empty_dict)) + goto bad; + if (imported_names) { +#if CYTHON_COMPILING_IN_CPYTHON + from_list = __Pyx_PyList_FromArray(imported_names, len_imported_names); + if (unlikely(!from_list)) + goto bad; +#else + from_list = PyList_New(len_imported_names); + if (unlikely(!from_list)) goto bad; + for (Py_ssize_t i=0; i__pyx_d, level); +} + /* dict_setdefault (used by FetchCommonType) */ static CYTHON_INLINE PyObject *__Pyx_PyDict_SetDefault(PyObject *d, PyObject *key, PyObject *default_value) { PyObject* value; @@ -94030,144 +112392,6 @@ static PyObject *__Pyx_Py3ClassCreate(PyObject *metaclass, PyObject *name, PyObj return result; } -/* ListPack */ -static PyObject *__Pyx_PyList_Pack(Py_ssize_t n, ...) { - va_list va; - PyObject *l = PyList_New(n); - va_start(va, n); - if (unlikely(!l)) goto end; - for (Py_ssize_t i=0; i__pyx_d, level); -} - /* ImportFrom */ static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name) { PyObject* value = __Pyx_PyObject_GetAttrStr(module, name); @@ -94207,6 +112431,25 @@ static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name) { return value; } +/* ListPack */ +static PyObject *__Pyx_PyList_Pack(Py_ssize_t n, ...) { + va_list va; + PyObject *l = PyList_New(n); + va_start(va, n); + if (unlikely(!l)) goto end; + for (Py_ssize_t i=0; i= 0x030C0000 || (!CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x03090000))) static PyObject* __Pyx__PyObject_CallMethod1(PyObject* method, PyObject* arg) { @@ -95275,6 +113518,75 @@ static CYTHON_INLINE TA_RetCode __Pyx_PyLong_As_TA_RetCode(PyObject *x) { return (TA_RetCode) -1; } +/* CIntToPy */ +static CYTHON_INLINE PyObject* __Pyx_PyLong_From_TA_FuncUnstId(TA_FuncUnstId value) { +#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 (is_unsigned) { + if (sizeof(TA_FuncUnstId) < sizeof(long)) { + return PyLong_FromLong((long) value); + } else if (sizeof(TA_FuncUnstId) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#if !CYTHON_COMPILING_IN_PYPY + } else if (sizeof(TA_FuncUnstId) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(TA_FuncUnstId) <= sizeof(long)) { + return PyLong_FromLong((long) value); + } else if (sizeof(TA_FuncUnstId) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); + } + } + { + unsigned char *bytes = (unsigned char *)&value; +#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4 + if (is_unsigned) { + return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1); + } else { + return PyLong_FromNativeBytes(bytes, sizeof(value), -1); + } +#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000 + int one = 1; int little = (int)*(unsigned char *)&one; + return _PyLong_FromByteArray(bytes, sizeof(TA_FuncUnstId), + little, !is_unsigned); +#else + int one = 1; int little = (int)*(unsigned char *)&one; + PyObject *from_bytes, *result = NULL, *kwds = NULL; + PyObject *py_bytes = NULL, *order_str = NULL; + from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes"); + if (!from_bytes) return NULL; + py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(TA_FuncUnstId)); + if (!py_bytes) goto limited_bad; + order_str = PyUnicode_FromString(little ? "little" : "big"); + if (!order_str) goto limited_bad; + { + PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str }; + if (!is_unsigned) { + kwds = __Pyx_MakeVectorcallBuilderKwds(1); + if (!kwds) goto limited_bad; + if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad; + } + result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds); + } + limited_bad: + Py_XDECREF(kwds); + Py_XDECREF(order_str); + Py_XDECREF(py_bytes); + Py_XDECREF(from_bytes); + return result; +#endif + } +} + /* CIntFromPy */ static CYTHON_INLINE int __Pyx_PyLong_As_int(PyObject *x) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC